Natalia Selezneva
72ef43f462
Show filePattern in settings for new script definitions if present
2019-11-22 11:43:32 +03:00
Alexander Udalov
608449f41d
IR: introduce StubGeneratorExtensions for ExternalDependenciesGenerator
...
This is a refactoring to simplify the API of
ExternalDependenciesGenerator and to constrain future additions of
platform-specific stub generator extensions.
2019-11-20 15:16:57 +01:00
Anatoly Nikitin
81e2e119e2
Fix propagation of dependency resolution failure reports during script compilation
2019-11-14 08:38:50 +01:00
Ilya Chernikov
9aaf08de08
Fix equality for the KtFileScriptSource
2019-10-29 20:44:18 +01:00
Vyacheslav Gerasimov
38ea5a85a3
Build: Add maven publication for Kotlin plugin artifacts
2019-10-24 17:06:19 +03:00
Vladimir Dolzhenko
fa0398ffd3
Fix readAccess in ScriptExtraImportsProviderExtension on checking isScript
...
#EA-214435 Fixed
2019-10-21 17:18:24 +02:00
Jordan Demeulenaere
158f7f1cd7
Avoid PsiFile searching when resolving imported scripts descriptors.
2019-10-18 13:17:28 +03:00
Ilya Chernikov
1f46e60153
Implement samWithReceiver support for scripts when ...
...
it configured from script compilation configuration
#KT-34294 fixed
2019-10-11 17:43:50 +02:00
Ilya Chernikov
2568804eaa
Instruct platform code to use NIO2 always
...
since we're not always use jna (means that we can get warnings about missing jna libs)
and according to the IDEA team, NIO2 works well enough to rely on it
2019-10-11 17:43:49 +02:00
Ilya Chernikov
54caf4bf16
Add resolving from classloader to REPL pipeline
2019-10-10 17:43:30 +02:00
Ilya Chernikov
2219b950f1
Implement resolve top-level functions and props from classloader
...
#KT-33892 fixed
2019-10-10 17:43:29 +02:00
Ilya Chernikov
7b93970ce2
Use default scripting host configuration if not provided
2019-10-10 17:43:27 +02:00
Roman Artemev
6f2768e774
[JS SCRIPT] Use new dependency resolver in script/js subsytem
2019-10-10 12:52:06 +03:00
Roman Artemev
c0f279811e
[JS SCRIPT] refactor js script infrastructure
...
- Implement proper script compiler proxy to correctly handle script and its closed-world dependencies
- Clean up zoo of JsScriptCompilers
2019-10-10 12:52:06 +03:00
Vitaliy.Tikhonov
f59e393e37
[CLI] add support running scripts in js compiler, extract common code with jvm part
2019-10-10 12:52:06 +03:00
Vitaliy.Tikhonov
50c08b25d3
[SCRIPTING] create extension for scripting in JS and extract common code with JVM part
2019-10-10 12:52:06 +03:00
Vitaliy.Tikhonov
c6c3d2de9e
[JS SCRIPTING] create tests for repl
2019-10-10 12:52:06 +03:00
Vitaliy.Tikhonov
62885ba497
[JS SCRIPTING] create compilers for scripting
2019-10-10 12:52:06 +03:00
Vitaliy.Tikhonov
240abdb750
[JS IR BE] update current lowerings for IrScript
2019-10-10 12:52:05 +03:00
Vitaliy.Tikhonov
d79279d8a5
[JS SCRIPTING] create CoreCompiler for scripting
2019-10-10 12:52:05 +03:00
Ilya Chernikov
b8258bfc71
Drop TestCaseWithTempDir usage from scripting compiler plugin tests
...
fighting with flaky tests
2019-10-03 12:24:50 +02:00
Ilya Chernikov
3fec15202f
[minor] fix source root creation from imported scripts:
...
make the usages of KotlinSourceRoot consistent everywhere
2019-10-03 12:24:50 +02:00
Ilya Chernikov
0a1aff4f80
Do not add updated script classpath to the compilation configuration
...
it is added via the updateClasspath call with proper duplicates control
2019-09-26 07:16:24 +02:00
Ilya Chernikov
d3b826c71d
Improve class name generation for scripts and REPL snippets
...
- allow to override default name/scheme
- implement host/engine specific names for jsr223 to avoid classloading
clashes (also fix "eval in eval" test)
2019-09-17 16:05:38 +02:00
Ilya Chernikov
6de05bb2c7
Drop hardcoded extraction of the snippet id from script name
...
rely on the userdate instead
2019-09-17 16:05:38 +02:00
Ilya Chernikov
61d517fb31
Implement script dependencies resolution directly from classloader
...
#KT-27956 fixed
2019-09-17 12:43:18 +02:00
Ilya Chernikov
f8db150a2b
[minor] Drop some usages of kotlin reflection in scripting compiler plugin
2019-09-17 12:43:16 +02:00
Ilya Chernikov
b2d2ba5811
Refactor test utils: don't add main-kts to the classpath...
...
by default on running scripting tests via the call to K2JVMCompiler
2019-09-13 13:19:26 +02:00
Ilya Chernikov
45f5c42a53
Add appropriate script extension to the source name, if not provided
...
#KT-31704 fixed
2019-09-13 13:19:26 +02:00
Ilya Chernikov
939d76fd2a
Isolate script execution from compiler classloader
...
Since fix of KT-33554, the script execution classpath is set correctly
according to the compilation classpath, so isolation makes sense now.
2019-09-13 13:19:26 +02:00
Ilya Chernikov
771f5c13dd
Fix imported script functionality in JSR-223/REPL:
...
- setup compilation properly to take imported scripts into account
- add compiled imported scripts into generated results
= calculate ScriptLightVirtualFile path as relative - simplifies imported scripts location
2019-09-13 13:19:26 +02:00
Natalia Selezneva
961e8c2c74
Refactor the mechanism how script configurations are updated
...
Introduce file attributes cache, which is only applicable when no dependencies are cached in memory cache
Refactor ScriptDependenciesCache to memory cache that is able to get configuration from cache and checks if it is up to date
Move all public methods to ScriptDependenciesManager
Introduce ScriptClassRootsManager that checks if root change event should be called after script configuration update
2019-09-06 10:52:17 +03:00
Natalia Selezneva
dc46f73ecf
Rewrite scripting related API to PsiFile instead of VirtualFile
...
There were several places where we converted virtualFile to PsiFile. This operation need a read access and may throw ProcessCanceledException,
so we want to minimize its usages in IDE
2019-09-06 10:51:26 +03:00
Ilya Chernikov
fda37eaaae
[minor] Rearrange test utils for easier reuse
2019-08-28 17:59:12 +02:00
Ilya Chernikov
947867286c
[minor] Fix potential problems with sequence, add a todo
2019-08-28 17:59:12 +02:00
Ilya Chernikov
c9b25cad01
Fix classpath handling when evaluating legacy scripts from kotlinc
...
#KT-33554 fixed
2019-08-28 17:59:12 +02:00
Ilya Chernikov
0f41dc814f
Switch many common tasks defined in buildSrc to lazy creation
...
also refactor some locally defined tasks to the creation avoidance API
2019-08-21 20:20:08 +02:00
Denis Zharkov
c20d565d93
[Core API] Introduce API for getting scopes with refinement
...
- All refinement-related methods are incapsulated in
ModuleAwareClassDescriptor
- most of classes implement it trivially by retning unchanged scope
- LazyClassDescriptor and DeserializedClassDescriptor have non-trivial
implementations of the refinement-related methods
- General idea is to return new scope which captures refiner and will
later use it to get correct content of itself (currently, refiner is
unused, and will be used for that in later commits)
- In order to not repeat similar work, those new instances of scopes are
cached in ScopeHolderForClass, which is essentially a cache of form
KotlinTypeRefiner -> MemberScope
2019-07-30 12:41:37 +03:00
Ilya Chernikov
2a5c4a2409
Move caching to after all configuration refinements and ...
...
move compilation cache setting to the scripting host configuration
The cache implementation can now take into account all external
dependencies that may appear during refinement.
Also change initial refinement location accordingly and rearrange
caching interfaces to make it available in scripting plugin.
2019-07-26 08:55:16 +02:00
Ilya Chernikov
0af52f2fa6
Implement composable refinement handlers...
...
for compilation and evaluation configurations.
Add utilities to apply refinements uniformly.
Also fix one invoke for list values - it was not consistent with
other builders
2019-07-26 08:55:14 +02:00
Ilya Chernikov
5ed6573a60
Fix testLazyScriptDefinitionProvider:
...
The KtUsefulTestCase functionality is not used here but seems causes
the side effects resulting in failing test, probably exactly because
the infrastructure loaded by the KtUsefulTestCase is never called
2019-07-19 16:37:50 +02:00
Ilya Chernikov
823cb70ba0
Fix script definition matching for REPL console
...
fixes IdeReplCompletionTestGenerated tests
in addition, fix default ScriptDefinition generation
2019-07-19 16:37:49 +02:00
Ilya Chernikov
425deb42ec
Convert paths to unix format before matching with filePathPattern
...
should also fix testPathPattern5_kts test
2019-07-19 16:37:49 +02:00
Natalia Selezneva
763f1e8606
Scripts: check that file is non-script starting script compilation configuration update
...
Replace FileType check with more precise method isNonScript
2019-07-18 12:30:03 +03:00
Natalia Selezneva
63767b4dca
Performance: do not check file type for scripts with standard extension
2019-07-12 16:24:57 +03:00
Ilya Chernikov
bd50454a73
Change default for script displayName parameter to empty, generate name from base class in definition
2019-07-12 13:44:09 +03:00
Ilya Chernikov
0cc40440fb
Implement filePathPattern in the script configuration with handling
...
also
- tests
- extending kdoc for the definitions
2019-07-12 13:44:09 +03:00
Ilya Chernikov
1396b3e682
Return default configuration when refinement failed on resolving script descriptor
...
also fixes appropriate IDE tests
2019-07-11 15:50:27 +02:00
Ilya Chernikov
382e55284c
Fix legacy definitions error propagation
...
also fixes script-util test with resolving errors
2019-07-11 15:50:26 +02:00
Ilya Chernikov
10e19bccb1
Abort script evaluation if environment is created with errors
...
also fixes appropriate test
2019-07-11 15:50:26 +02:00