Pavel V. Talanov
ced3cf0904
Light classes: fix multifile facades for mpp modules with jvm part
...
When creating multifile facades respect that facade files can be both
in common and jvm parts
#KT-23942 Fixed
2018-06-06 21:04:02 +02:00
Pavel V. Talanov
a8a490ea5a
Test multifile facades in mpp projects
2018-06-06 21:04:00 +02:00
Pavel V. Talanov
8185b1bf02
Test accessing file facades from java in mpp project
2018-06-06 21:03:57 +02:00
Pavel V. Talanov
1be477c816
Fix "add member" quick fix when invoked from java on common class
...
#KT-24115 Fixed
2018-06-06 21:03:56 +02:00
Pavel V. Talanov
9e493d8b73
Mpp tests: allow to test java code in highlighting and quickfix tests
2018-06-06 21:03:55 +02:00
Pavel V. Talanov
0157d7bd5d
Mpp utils: remove erroneous cache
...
Note: can't use Module.cached to calculate data that depends on input
other than the module itself (isTests in this case)
2018-06-06 21:03:53 +02:00
Pavel V. Talanov
1f957de9d8
Minor: use utils appropriately
2018-06-06 21:03:52 +02:00
Pavel V. Talanov
fa7531f342
Refactor: move and prettify mpp util code
2018-06-06 21:03:51 +02:00
Pavel V. Talanov
05e6c4e0a2
Minor: move utils to more appropriate place
2018-06-06 21:03:50 +02:00
Pavel V. Talanov
4279dc9c05
Minor: better name for generated test
2018-06-01 14:15:04 +02:00
Pavel V. Talanov
c54967b1b4
IdeaModuleInfos: cache Module.findImplementedModules
...
Calling ModuleSourceInfo.expectedBy can be quite costly otherwise
because creating IdeModifiableModuleProvider is not cheap
2018-05-28 20:02:02 +02:00
Pavel V. Talanov
607fab994c
Cache result of collectModulesFromIdeaModel
...
Cache base module infos from idea model until next root modification
Calculate platform specific module infos (see PlatformModuleInfo)
on demand based on cached module infos from idea model
#KT-24144 Fixed
2018-05-28 20:02:02 +02:00
Pavel V. Talanov
406a3888c7
Minor: split getModuleInfo into separate files
2018-05-28 20:02:01 +02:00
Pavel V. Talanov
a584de8a7e
Prefer platform specific declarations when searching for library sources
...
Untested: test infrastructure needed
#KT-23223 Fixed
2018-05-11 16:25:16 +02:00
Pavel V. Talanov
f6b094781f
Mpp resolve: ignore module dependencies on libraries of other platforms
...
These are not read by the compiler
Untested: test infrastructure needed
#KT-20406 Fixed
2018-05-11 16:25:14 +02:00
Pavel V. Talanov
a4e327c137
Mpp: KT-23457, fix importing common classes into common modules
...
Add test for KT-23457
NOTE: fixes 'importClassInCommon' test
Other test cases added to increase coverage
#KT-23457 Fixed
2018-04-26 15:33:51 +02:00
Pavel V. Talanov
64a28dd542
QuickFixMultiModuleTest: fix test code
...
Adjust test data
2018-04-26 15:33:48 +02:00
Pavel V. Talanov
7daf44a806
Fix bunch files after mpp changes
2018-04-23 18:56:36 +02:00
Pavel V. Talanov
521357a22d
Add tests for KT-20824, KT-23745, KT-23124, KT-20605, KT-23760
...
#KT-20824 Fixed
#KT-23745 Fixed
#KT-23124 Fixed
#KT-20605 Fixed
#KT-23760 Fixed
2018-04-20 20:00:12 +02:00
Pavel V. Talanov
94fe170b7b
MPP: analyze platform sources with expectedBy common sources
...
This allows to emulate current compiler behaviour
Introduce CombinedModuleInfo which is a combination of several other modules intended to be analyzed together
2018-04-20 20:00:11 +02:00
Pavel V. Talanov
94dfcba5c5
Minor: adjust quick fix test data to avoid "conflicting overloads"
2018-04-20 20:00:07 +02:00
Pavel V. Talanov
3949fc70c9
Adjust test data for previously ignored tests
2018-04-20 20:00:05 +02:00
Pavel V. Talanov
5ddb7c71d1
Mpp resolve: fix actual/expect declaration lookup
...
Previously we would look fo expect declaration in common dependencies
as opposed to looking inside the module exclusively
2018-04-20 20:00:04 +02:00
Pavel V. Talanov
cdb49511e6
Mpp highlighting test: make generated, adjust test data
...
Note: this spawns new test cases which were ignored previously
2018-04-20 20:00:02 +02:00
Pavel V. Talanov
5a85f2437d
Mpp test utils: allow to setup dependencies on stdlib and fulljdk
...
Allow to specify jjvm8 as platform
2018-04-20 20:00:00 +02:00
Pavel V. Talanov
33a312c26d
Do not throw when trying to resolve java outside project model
...
#KT-23444 Fixed
#KT-22825 Fixed
2018-04-17 16:19:49 +02:00
Pavel V. Talanov
8eb80a8f4a
as31: Add step to patch plugin xml so that it only works in Android Studio
...
(cherry picked from commit fcee4eb)
(cherry picked from commit 14f7731)
(cherry picked from commit b1f5df2)
2018-04-11 16:28:14 +03:00
Pavel V. Talanov
de71598794
Fix line markers for actual enum entries
...
#KT-22632 Fixed
2018-04-04 17:56:35 +02:00
Pavel V. Talanov
e66768cbb3
Rewrite mpp line marker tests to be generated
2018-04-04 17:56:35 +02:00
Pavel V. Talanov
c3d2334eed
Fix expect declarations available in completion in platform modules
2018-04-04 17:56:35 +02:00
Pavel V. Talanov
549bebbd19
Add test infrastructure for completion in mpp
...
Allow to specify specific expected module in test data for completion items
2018-04-04 17:56:35 +02:00
Pavel V. Talanov
08b62d3564
Rewrite 'goto' mpp tests to be generated
...
Adjust test data
Use new util in FindUsagesMultiModuleTest
2018-04-04 17:56:34 +02:00
Pavel V. Talanov
1f4926e259
Rewrite QuickFixMultiModuleTest to be generated
...
Adjust test data
Drop 'overload' test data since it was never run before
2018-04-04 17:56:34 +02:00
Pavel V. Talanov
67a436bf7e
MPP tests: provide utils to setup test mpp from project structure
...
Allows to avoid configuration in test code
2018-04-04 17:56:34 +02:00
Pavel V. Talanov
01bff0e156
AbstractQuickFixMultiModuleTest: refactor and simplify code
...
Remove dependency on test module names
2018-04-04 17:56:33 +02:00
Pavel V. Talanov
36d23e4501
Refactor: merge synonymous utils
2018-04-04 17:56:33 +02:00
Pavel V. Talanov
784936eb00
Show 'actual/expect' icons for declarations in addition to visibility
2018-04-04 17:56:33 +02:00
Pavel V. Talanov
c86a6cf21d
Minor: rename expect/actual icon constants
...
Reflect icons' content
2018-04-04 17:56:32 +02:00
Pavel V. Talanov
9c9cdee7f0
Refactor: move utils related to expect/actual declarations and MPPs
...
Move them to 'idea-analysis' module
2018-04-04 17:56:32 +02:00
Pavel V. Talanov
3aee544f02
Throw more descriptive exception when service isn't found
2018-04-04 17:56:32 +02:00
Pavel V. Talanov
dc27a3f6d0
Minor: lightClassUtils, less specific return type
2018-03-12 12:05:08 +01:00
Pavel V. Talanov
32516a3f33
Refactor: split *LightClassGenerationSupport into separate files
...
Move cli binding trace implementation to top level
2018-03-12 12:05:05 +01:00
Pavel V. Talanov
f421181e16
Split LightClassGenerationSupport into separate entities
...
LightClassGenerationSupport:
Includes utilities related to generating light classes
Primary client of this service are KtLight* implementation classes
KotlinAsJavaSupport:
Provides APIs to transform kotlin code into Psi* entities
Primary client of this service is JavaElementFinder
2018-03-12 12:04:59 +01:00
Pavel V. Talanov
27d7bb595f
CliLightClassGenerationSupport: correctly find facade files
...
This fixes a problem where JvmPackageName annotation could force file
facades to be in the package different to declared kotlin package
2018-03-06 12:07:12 +01:00
Pavel V. Talanov
00ee5e3d16
Refactor: extract mapping package to files to a separate component
...
Make it extensible
2018-03-06 12:07:08 +01:00
Pavel V. Talanov
fae0f611a0
Test java resolve against kotlin file with JvmPackageName annotation
2018-03-06 12:07:07 +01:00
Pavel V. Talanov
498431311c
Light classes: test "JvmPackageName" and actual declarations
2018-03-06 12:06:59 +01:00
Pavel V. Talanov
d2b90b84f8
KotlinFileStubForIde: save full facadeFqName
...
Prefix is not necessarily same as packageFqName since JvmPackageName was introduced
2018-03-06 12:05:53 +01:00
Pavel V. Talanov
6c4537accc
Create InvalidLightClassDataHolder for expect classes
...
This fixes an exception from duplicateJvmSignature reporter
Fixes "QuickFixTestGenerated$Override.testDontOfferToImplementMembersForExpectedClass" on teamcity
2018-03-05 18:07:38 +01:00
Pavel V. Talanov
89c82a85d0
Do not build light classes for expect classes
...
#KT-15482 Fixed
2018-03-05 18:07:36 +01:00
Pavel V. Talanov
a6aea5625a
Dsl completion: fix completion when multiple receivers are in scope
2018-02-28 19:48:45 +01:00
Pavel V. Talanov
cf6fd4da81
Completion: prevent lookup elements from being duplicated correctly
...
This code prevents completion items from being submitted several times for the same descriptors
But some contributors actually do contribute extra items for already processed descriptors
Fixes a problem introduced in 1796d40118
2018-02-22 20:32:54 +01:00
Pavel V. Talanov
10f6d65e03
IdeStubIndexService: do not index annotations without name
...
Fixes NPE after changes introduced in 8f8cbfcfa5
2018-02-22 20:29:00 +01:00
Pavel V. Talanov
92070d132e
Completion: do not force dsl members to the top if some type is expected
2018-02-21 14:44:14 +01:00
Pavel V. Talanov
1796d40118
Completion: assign highest priority to dsl members in dsl context
...
Use the same style as for dsl for lookup items that belong to dsl
2018-02-21 14:44:13 +01:00
Pavel V. Talanov
8f8cbfcfa5
KtAnnotationEntry#name is stubbed and is nullable
2018-02-21 14:44:09 +01:00
Pavel V. Talanov
8600add7f7
Refactor: extract utils related to DslMarker to a separate object
2018-02-21 14:44:08 +01:00
Pavel V. Talanov
8ac7f0b592
Minor: remove error marker from commented out test code
2018-02-12 16:46:16 +01:00
Pavel V. Talanov
fd4e262b1f
Minor: modify test for KT-22819 to unmute it on teamcity
...
#KT-22819 Open
2018-02-12 16:35:56 +01:00
Pavel V. Talanov
9e69c73387
Minor: comment out test for KT-22594 to unmute it on teamcity
...
#KT-22594 Open
2018-02-12 16:35:51 +01:00
Pavel V. Talanov
229184dd78
Dsl line marker: provide simple tooltip
...
Test dsl line marker
2018-02-08 15:36:42 +01:00
Pavel V. Talanov
519ea12bb2
Test, dsl highlighter: test custom highlighting applied to calls
2018-02-08 15:36:41 +01:00
Pavel V. Talanov
bc54c95bc3
JavaResolveExtension: create facade by original element
...
Fixes semantic difference erroneously introduced in c030a047aa
#KT-22593 Fixed
2018-02-05 16:26:47 +01:00
Pavel V. Talanov
7b8d501670
Dsl highlighting: Provide gutter for marker annotation definition
...
Allows to jump to corresponding page in 'color and font' settings
2018-02-05 16:22:23 +01:00
Pavel V. Talanov
0d5d826bc5
Dsl highlighting: reasonable default colors
2018-02-05 16:22:22 +01:00
Pavel V. Talanov
b9c832a952
Implement custom highlighting for dsls
...
A declaration is considered a part of dsl if it's marked with
a marker annotation (which is in turn must be marked as @DslMarker)
Highlighting attributes are then chosen randomly from a preset list
based on marker annotation fqname
2018-02-05 16:22:20 +01:00
Pavel V. Talanov
5ab00ee9f7
HighlighterExtension can provide custom highlighting for calls
2018-02-05 16:22:19 +01:00
Pavel V. Talanov
03a8ce63b2
Scripts: fix any file deletion potentially leading to reindex
2017-12-29 20:14:59 +03:00
Pavel V. Talanov
dd32c4e66a
Revert minor semantic differences introduced in c030a047aa
...
Fix 'pull members up' and 'kotlin injected into kotlin' tests
2017-12-27 20:24:26 +03:00
Pavel V. Talanov
c030a047aa
Fix getting ModuleResolver by element for script files
...
Fixes EA-105435 (some isntances)
JavaResolveExtension: refactor API
2017-12-25 20:12:51 +03:00
Pavel V. Talanov
2af0bf4c71
Drop JsProjectDetector
...
It leads to undesired behaviour
such as returning library source when only binaries are queried
It is redundant since js libraries do not include kotlin source files
(real binary format is used for this purpose for along time now)
2017-12-25 20:12:48 +03:00
Pavel V. Talanov
6551ee5403
Test completion in script files
...
Test for 'JavaResolutionUtils.getJavaDescriptorResolver' failing with AE
Tests ebd3ac6dc8
See EA-105435
2017-12-25 20:12:46 +03:00
Pavel V. Talanov
aec893180e
Minor, JvmAnalyzerFacade: drop logging
...
Prevent log spam
2017-12-20 17:19:09 +03:00
Pavel V. Talanov
4890979476
ScriptDefinitionsManager: ignore reloadDefinitionsBy calls
...
If definitions are not loaded yet
2017-12-19 17:15:39 +03:00
Pavel V. Talanov
106f571814
scriptTemplatesFromCompilerSettings: fix ScriptDefinitionsManager access
...
#KT-21545 Fixed
2017-12-19 17:15:36 +03:00
Pavel V. Talanov
cf2e9c7002
Fix compilation: erroneous import
2017-11-14 20:30:13 +03:00
Pavel V. Talanov
70b22e7f85
Highlighting: never highlight errors for compiled files
2017-11-14 18:29:58 +03:00
Pavel V. Talanov
9db9750e67
Light classes: do not fail when classfile is in src root
2017-11-14 18:29:53 +03:00
Pavel V. Talanov
6667732dd4
Do not hide kotlin class files in source roots
...
This fixes a problem where file is indexed but querying
index fails with an exception because file has no PSI
#KT-21061 Fixed
2017-11-14 18:26:53 +03:00
Pavel V. Talanov
8696b37cdb
Minor, tests: make collection synchronized
...
Attempt to fix flaky test test that use LightClassComputationControl
2017-11-14 17:47:55 +03:00
Pavel V. Talanov
ae2b0325a3
Restore and deprecate old ScriptTemplatesProvider EP
2017-11-14 16:30:42 +03:00
Pavel V. Talanov
6fed779782
Reload gradle script definitions
...
Reloading in the following scenarios:
- Successful gradle sync following a failure to load definitions
- Gradle settings changed in IDE (via settings UI)
2017-11-14 16:30:40 +03:00
Pavel V. Talanov
4906c850af
Reload script definitions on compiler settings changes
...
Provide API to track compiler settings changes
2017-11-14 16:30:37 +03:00
Pavel V. Talanov
ef539bd89d
Tests: use standard script definition in cli tests by default
2017-11-14 16:30:35 +03:00
Pavel V. Talanov
cdfdc1d19b
Refactor script definitions loading
...
Make ScriptDefinitionProvider an interface
and provide different implementation for cli and IDEA
Rework ide extension point to a simpler interface (ScriptDefinitionContributor)
Move template loading logic into a top level function
Allow script definitions to be reloaded in IDE
2017-11-14 16:30:33 +03:00
Pavel V. Talanov
f063254cc1
GradleScriptDefaultDependenciesProvider: better name filter
2017-11-14 16:30:30 +03:00
Pavel V. Talanov
df74fb23f8
ScriptDependenciesCache: limit simultaneously cached script count
...
Do not schedule updates for dependencies of scripts that were not requested
(opened in the editor or such) for some time
This fixes a problem when vcs updates changing scripts can trigger
undesired script dependencies updates
(probable cause of script files never highlighted correctly in some cases)
Refactor: use VirtualFile instead of String and move code from GradleScriptTemplateProvider
2017-11-14 16:30:28 +03:00
Pavel V. Talanov
9e061d3bbb
Fix light class exception on empty multifile facade
...
Fix generating multifile facade with all members private (in bytecode)
leading to delegate not being generated for corresponding light class
#KT-20966 Fixed
2017-11-03 16:44:53 +03:00
Pavel V. Talanov
b7b3caedcc
IDELightClassContexts: fix light member mismatch on InlineOnly members
2017-10-25 14:48:32 +03:00
Pavel V. Talanov
320c5f6f3a
Try to approximate "build.gradle.kts" script dependencies on first access
...
This is a hacky solution to prevent whole file being highlighted as unresolved while we wait for gradle response
2017-10-17 18:49:48 +03:00
Pavel V. Talanov
1cdac78b32
ScriptDependenciesCache, refactor: use delegated properties
2017-10-17 18:49:40 +03:00
Pavel V. Talanov
539e655802
PluginDeclarationProviderFactory: improve diagnostic
...
Attempting to catch EA-103048
2017-10-16 18:18:36 +03:00
Pavel V. Talanov
df4b90fcb6
Scripts: Accept objects as DependenciesResolver implementations
...
Fixes DependenciesResolver.NoDependencies causing "missing constructor without parameters" warning
2017-10-12 19:22:59 +03:00
Pavel V. Talanov
deda5e7eee
Fix navigation to script dependency sources failing
...
Specifically in case where some lib is in project and script dependencies at the same time
2017-09-08 15:06:00 +03:00
Pavel V. Talanov
ebd3ac6dc8
Fix script resolver failing
...
Specifically the case where some lib is in project dependencies and script dependencies at the same time
#EA-105435 at least partially fixed
#KT-19458 Fixed
#KT-19474 Fixed
2017-09-08 15:05:58 +03:00
Pavel V. Talanov
e9ce5bbb37
Infrastructure to test sharing libs by project and scripts
...
Allow to test scenario where project and scripts share some jar as dependency
Refactor AbstractScriptConfigurationTest
2017-09-08 15:04:20 +03:00
Pavel V. Talanov
53144def10
AbstractScriptConfigurationTest: rewrite script template setup
...
Allow simpler setup of common scenarios
Do not require to define DependenciesResolver for every test
Drop redundant template files
2017-09-08 15:04:17 +03:00
Pavel V. Talanov
d7149a4083
getModuleInfo.kt: allow go get all module infos for a given psiElement
2017-09-08 15:04:14 +03:00
Pavel V. Talanov
6bec17246c
Fix inspections run for script dependency source files in come cases
...
This filter defines which files inspections are run for
In most cases other platform code prevented inspections from running for
library source files but this check is needed to prevent KT-19377
#KT-19377 Fixed
2017-09-08 15:03:30 +03:00
Pavel V. Talanov
653314e671
IDE script support: cancel coroutines on project disposal
2017-09-04 16:35:28 +03:00