Fedor Isakov
19eca73737
Bump up version and compatibility with MPS 232
2023-09-21 14:27:53 +02:00
Fedor Isakov
2fdae19190
Drop old hack
...
Coderules are enabled on the app level, so no need to pass the repo.
2023-09-21 14:27:53 +02:00
Fedor Isakov
e3c6c304fe
Optimizing AspectClique discovery; clean up the code
2023-09-21 14:27:53 +02:00
Fedor Isakov
3cf666e633
Apply migrations and make project
2023-07-31 12:57:24 +02:00
Fedor Isakov
161ba961b1
Add an option to filter empty template nodes in trace view
2023-06-21 15:21:28 +02:00
Fedor Isakov
91964a4f53
Fix icons in trace view of Coderules tool
...
Used to refer to obsolete icons from legacy aspect.
2023-06-19 16:24:46 +02:00
Fedor Isakov
0e2c64e587
Fix resolve info
2023-06-12 12:20:35 +02:00
Fedor Isakov
6a849f82f2
Apply migrations and rebuild project
2023-06-12 12:01:02 +02:00
Fedor Isakov
682967c54c
Fix code to make compatible with latest 23.1 EAP
2023-06-12 12:01:02 +02:00
Fedor Isakov
bd7f76a020
Optimize shared typechecking state usage
2023-06-12 12:01:02 +02:00
Fedor Isakov
90d9644057
Respect isStrong query property when caching results
2023-05-03 10:31:55 +02:00
Fedor Isakov
d262277d59
Update build script
2023-05-03 10:31:55 +02:00
Fedor Isakov
1c307e42c5
Fix UI action broken after options redesign
2023-05-03 10:31:55 +02:00
Fedor Isakov
985f6af842
Drop watching flag: always run typechecking in incremental mode
2023-05-03 10:31:55 +02:00
Fedor Isakov
4900f13609
Fix weird type hidden under SCPD
2023-05-03 10:31:55 +02:00
Fedor Isakov
8cb0ddc049
Simplifying TypecheckingOptions API
...
Enable using CR in bootstrap mode via Registry.
Drop unused code.
2023-05-03 10:31:55 +02:00
Fedor Isakov
b074647d12
Fix unresolved reference
2023-04-10 16:43:04 +02:00
Fedor Isakov
24944eef5a
Fix issues with ideaplugin module in source project
2023-03-29 13:00:09 +02:00
Fedor Isakov
425e125ba8
Migrate to JUnit5 and temporarily disable "check project modules" test
2023-03-03 17:10:05 +01:00
Fedor Isakov
6d267a33af
Fix an error in log
2023-03-03 17:07:05 +01:00
Fedor Isakov
ae586b665e
Use 'Messages' as tool window ID for baloon. MPSCR-127
2023-02-23 17:09:41 +01:00
Fedor Isakov
94ceb7614f
Fix config option provider
2023-02-23 16:43:50 +01:00
Fedor Isakov
5fbcb991f0
Fix trove library jar location in plugin
2023-02-23 16:28:05 +01:00
Fedor Isakov
6ebc8782b9
Avoid issues when opening root project
...
Only UI-specific code related to settings left in "idea" project solution,
everything else moved to MPS-managed plugins.
2023-02-23 11:48:19 +01:00
Fedor Isakov
d531c6a5ad
Run Migration Assistant
2023-02-22 13:52:02 +01:00
Fedor Isakov
430466c1c9
Fix code incompatible with latest platform
2023-02-17 11:41:32 +01:00
Fedor Isakov
ad3ea9d63d
Apply all migrations from 2022.2
2022-11-21 11:25:13 +01:00
Fedor Isakov
d9cda646de
Bump up plugin versions
2022-11-21 11:25:03 +01:00
Fedor Isakov
4086236afe
Introduce recursion guard for typechecking provider
2022-11-21 10:50:00 +01:00
Fedor Isakov
14f4561b29
Ensure AspectClique contains all necessary languages
2022-09-08 14:07:06 +02:00
Fedor Isakov
0ae9743026
Fix tests
2022-09-02 18:01:46 +02:00
Fedor Isakov
f8b17e4de7
Fix compilation
2022-09-02 16:28:31 +02:00
Fedor Isakov
4070194d01
Bump up plugin versions
2022-09-02 16:11:00 +02:00
Fedor Isakov
6030332107
Introduce profiling into program produce/evaluation steps
2022-09-02 15:49:30 +02:00
Fedor Isakov
34bb26f0fc
Redesign coderules trace view to display profiling data
...
Coderuels trace now has three tabs that contain:
- activation trace
- template application trace
- profiling data
2022-09-02 15:49:30 +02:00
Fedor Isakov
04cfbe0c30
Add an option to enable/disable profiling
2022-09-02 15:49:30 +02:00
Fedor Isakov
83e273da73
Fix tests by caching Config instance
...
Tests are launched within a context that is unable
to perform normal MPS classloading, so we resort to
caching the (singleton) instance of Config coming from
an (IDEA) plugin to use it later.
2022-08-27 19:39:14 +02:00
Fedor Isakov
5affa9af14
Ensure directory is created before build process
2022-08-26 16:15:35 +02:00
Fedor Isakov
ec8ab9eb14
Fix generating with build script
2022-08-26 15:51:05 +02:00
Fedor Isakov
de5fa8e543
Fix server build by turning compilation in MPS off
...
This commit breaks the project but allows to build
and test on the server. Locally the module
j.m.c.ideaplugin can be marked as "compile in MPS",
which effectively allows classes to be loaded.
2022-08-26 15:29:18 +02:00
Fedor Isakov
78f847747b
Drop unstable hacks, simplify code
2022-08-26 13:58:22 +02:00
Fedor Isakov
0a9f4445d3
Drop obsolete artefact
2022-08-26 13:58:22 +02:00
Fedor Isakov
a40d74c600
Fix project build and loading scheme
...
Source files for ideaplugin are now compiled externally.
2022-08-26 10:39:20 +02:00
Fedor Isakov
299d9a4fd8
Update build scripts to fix tests launching
2022-08-25 12:59:36 +02:00
Fedor Isakov
d2ca45aa02
Extract bootstrap code to idea plugin; CR options to become app-level
...
CR typechecking options are now application-level.
The solution j.m.c.ideaplugin contains the code responsible
for accessing and setting the options. This solution is loaded
as IDEA plugin on deploy and as regular module in source project.
Also merge code from two modules into j.m.c.typechecking.
2022-08-25 12:59:36 +02:00
Fedor Isakov
c4a157bf4d
Bump up plugin versions
2022-08-16 18:11:49 +02:00
Fedor Isakov
29a7479bce
Mark public methods of TC queries as synchronized
2022-08-16 18:11:49 +02:00
Fedor Isakov
e3870d1397
Switch to using built-in messages view for Coderules messages
2022-08-01 14:11:38 +02:00
Fedor Isakov
874cc5d135
Paranoid NPE checks, MPSCR-113
2022-08-01 14:11:36 +02:00
Fedor Isakov
ba7411abfa
Bump up plugin version and rebuild build scripts
2022-07-28 10:37:36 +02:00
Fedor Isakov
f985db8206
Update and rebuild build scripts
2022-07-28 10:30:38 +02:00
Fedor Isakov
f9eb52a60f
Introduce checkpoint for typechecking "strut" templates
...
The templates that typechecking relies upon are generated
into the user model as synthetic constructs. These later
need to be discovered by the generator to establish
correct references.
2022-07-28 10:30:38 +02:00
Fedor Isakov
33b472f560
Switch to using plain FQN strings to identify templates
...
SNodeReference are too unreliable to be used.
2022-07-28 10:30:38 +02:00
Fedor Isakov
468cee3b54
Avoid NPE when displaying baloon
2022-07-28 10:30:38 +02:00
Fedor Isakov
0663921ecd
Refactoring in TypecheckingService; simplifying code
...
Request is no longer dependent on `TypecheckingService`.
Only single request can be processed at a time, which helps
prevent recursion.
All facade method in `TypecheckingService` now return instance
of `Response` instead.
2022-07-15 19:46:33 +02:00
Fedor Isakov
0422a4cbd4
Fix exception initialization
2022-07-15 19:46:32 +02:00
Fedor Isakov
115135bbb5
Update plugin versions and manifests
2022-07-13 12:27:14 +02:00
Fedor Isakov
71d2014ef1
Update and rebuild build scripts
2022-07-07 12:56:30 +02:00
Fedor Isakov
f24169ba26
Refactor Config to be immutable; allow multi-project MPSCR-105
...
Drop hacks that try to figure out the active project.
Instead introduce new ones that cache the instance of `ProjectRepository`
(unfortunately, there is no way around that now).
Stop accessing and modifying the singleton `Config` instance,
instead make an instance of `Config` a parameter to `TypecheckingService`.
2022-07-07 12:56:30 +02:00
Fedor Isakov
e4d7a9ff9e
Notify UISettings after changing preferences, listen to UISettings
2022-07-07 12:56:29 +02:00
Fedor Isakov
99907ec111
Fix how CR widget looks (more professional look)
2022-07-07 12:56:28 +02:00
Fedor Isakov
a84675c0f2
Cache statusbar in intialization code to avoid NPE
2022-07-04 13:42:39 +02:00
Fedor Isakov
ff1ceb7dda
Update build script
2022-06-18 14:53:09 +02:00
Fedor Isakov
f6e75628c8
Rebuild build script
2022-06-13 11:20:31 +02:00
Fedor Isakov
7593fc7b14
Avoid NPE if preferences are not available
2022-06-13 11:20:31 +02:00
Fedor Isakov
8a46abcfb3
StatusBar widget to control Coderules ON/OFF
2022-06-13 11:11:57 +02:00
Fedor Isakov
d1f3066af2
Drop all caches from AspectLookup
...
Caches cause subtle errors and their utility is questionable.
2022-06-08 10:23:43 +02:00
Fedor Isakov
e1bab4a1c7
Respect LateExpression arg when building unique_tag, MPSCR-107
...
Rule's unique_tag is important for update procedure
implemented by RulesPlanHandler. Only when we can guarantee
that an argument to constraint/predicate has not changed
we can save on re-building a rule from template.
Ignoring LateExpression was a mistake.
2022-06-07 15:22:39 +02:00
Fedor Isakov
88aaf7898c
Ensure only relevant aspects selected for certain queries
...
While check/checkTypeOf queries are required to
process a whole root, other types of queries
can be sensitive to what aspects to include in
the processing.
Aspects are sorted in strongly-connected components,
among which the relevant one is selected.
2022-06-06 13:00:52 +02:00
Fedor Isakov
56c7bdad7f
Make FQ symbol names displayed as short names in trace view
2022-05-26 12:52:25 +02:00
Fedor Isakov
f862406ca6
Switch to using single AspectClique
2022-05-26 12:52:25 +02:00
Fedor Isakov
c112a59116
Switch to collection of QueryTemplate instead of single instance
...
The deisgn decision to have only one instance of QueryTemplate
leads to the necessity to keep AspectClique separated for
every "typesystem". Whereas QueryTemplate are really perfectly
composable, and thus only one AspectClique is neeeded.
Also drop a rudimentary unused feature.
2022-05-26 09:58:31 +02:00
Fedor Isakov
710c5ddc9b
Ensure failure during trace view update is gracefully handled
2022-05-25 13:37:55 +02:00
Fedor Isakov
b6c190c35c
Introduce ruleInput parameter to call macro
...
Accessing the rule input allows to track dependencies
necessary for correctly updating the feedback.
2022-05-09 17:02:12 +02:00
Fedor Isakov
e7054ed124
Drop usages of invalidatedFeedbackKeys, minor fixes
2022-05-09 13:32:14 +02:00
Fedor Isakov
e2521c3478
Bump up version of coderules plugin
2022-05-03 10:26:43 +02:00
Fedor Isakov
702098d091
Cleanup and simplify typechecking strategy
2022-05-03 10:26:43 +02:00
Fedor Isakov
7f34ea78f6
Drop incrementality-related options and UI elements
2022-05-03 10:26:43 +02:00
Fedor Isakov
050c47c2eb
Update conreactor version to 0.9.16
2022-04-25 12:47:43 +02:00
Fedor Isakov
bd249c5d0c
Drop obsolete feature: incremental specification
2022-04-21 16:05:31 +02:00
Fedor Isakov
c192a529a6
Display undo activate/discard events in trace view. MPSCR-102
2022-03-15 15:48:56 +01:00
Fedor Isakov
51a4949cbd
Update reactor version
2022-03-15 14:27:43 +01:00
Fedor Isakov
c7c55605f5
Add dependency to c.i.modules.platform to pluigns
2022-02-23 13:09:34 +01:00
Fedor Isakov
b500bf5f8f
Fix broken plugin descriptor
2022-02-17 17:50:27 +01:00
Fedor Isakov
73f86ba626
Disable obsolete warning
2022-02-17 17:08:31 +01:00
Fedor Isakov
9cb04439eb
Fix packaging of coderules and mpscore plugins
...
Fix the path mapping of lib files.
2022-02-17 16:44:14 +01:00
Fedor Isakov
c44e4b2080
Update coderules plugin desc, fix release number
2022-02-16 12:23:38 +01:00
Clement de La Bourdonnaye
2b23c56283
Added coderules modules in plugin content
2022-02-08 12:21:28 +01:00
Fedor Isakov
d7ffb963f7
Fix and rebuild build scripts
2022-02-08 10:44:48 +01:00
Fedor Isakov
2e5d73b31e
Add icons for typechecking roots and the aspect
2021-11-25 18:09:22 +01:00
Fedor Isakov
4e70300ea7
Update language imports
2021-11-24 16:22:17 +01:00
Fedor Isakov
3774759270
Drop references to removed Activation Trace
2021-11-24 16:22:17 +01:00
Fedor Isakov
3af6cf93b0
Fix missing effect
2021-11-18 12:29:33 +01:00
Fedor Isakov
e95526ef33
Update build script
2021-11-18 10:59:58 +01:00
Fedor Isakov
4ccbff779f
Refactoring in the UI: merging tool windows into one
2021-11-18 10:59:58 +01:00
Fedor Isakov
e64f01a059
Move typechecking actions to debug menu, drop errors highlighting
2021-11-15 17:08:28 +01:00
Fedor Isakov
b892bc3aa5
Avoid failing on empty handlers list, MPSCR-97
2021-11-15 13:00:03 +01:00
Fedor Isakov
5a6beac54e
Avoid failing with a stacktrace on empty aspect clique
2021-11-15 13:00:03 +01:00
Fedor Isakov
6a120fb9d6
Change "show type balloon" shortcut to not conflict with Show Type dialog
2021-11-11 14:38:07 +01:00
Fedor Isakov
2c8781cc9b
Provisional support for custom queries
2021-11-08 13:21:09 +01:00
Fedor Isakov
ea47468c3d
Cleanup the code, better separation of concerns
2021-11-08 13:21:09 +01:00
Fedor Isakov
d09348512d
Refactoring: extract Request hierarchy out of TypecheckingService
2021-11-04 12:48:11 +01:00
Fedor Isakov
c9a830d730
Cleanup code, rely on Query for presentation
2021-11-04 12:48:11 +01:00
Fedor Isakov
af8c50f3e5
Refactor TypecheckingService: parameterize Request with Query
2021-11-04 12:48:11 +01:00
Fedor Isakov
7cc8be7296
Refactor TypecheckingService: move logic to Request, simplify code
2021-11-04 12:48:11 +01:00
Fedor Isakov
96ede52bcc
Cleanup typechecking settings page
2021-10-27 16:21:08 +02:00
Fedor Isakov
cf04a60cc9
Minor improvements in displaying terms and activation trace
2021-10-26 17:46:41 +02:00
Fedor Isakov
ebe463ece5
Fix dangling dependency
2021-10-26 17:46:40 +02:00
Fedor Isakov
257bc196c3
Re-save all models
2021-10-26 17:46:40 +02:00
Fedor Isakov
dd4eece1df
Refresh build project
2021-09-23 15:20:23 +02:00
Fedor Isakov
f3c12ec4af
Fix missing dependency
2021-09-23 15:16:17 +02:00
Fedor Isakov
1ed5fa4e4b
Update build project
2021-09-22 17:08:25 +02:00
Fedor Isakov
2d52921561
Fix and optimize dependencies
2021-09-22 17:08:25 +02:00
Fedor Isakov
2420685b19
Disable an obsolete test
2021-09-22 17:08:25 +02:00
Fedor Isakov
82b04c23ae
Introduce TYPE_COLLECTOR parameter to pass to template application session
...
The older technique that passed "typeCollector" to query is replaced
with passing this object as a session parameter.
Can be accessed with "CustomSessionParameter".
2021-09-21 17:54:51 +02:00
Fedor Isakov
b122872890
Refactor Result to be able to clear the cause
2021-09-21 17:54:51 +02:00
Fedor Isakov
3f606ba63c
Refactor the way parameters are passed to expand macro
...
Instead of the hack that that uses session parameters to pass
parameters to expandMacro, use directly `withParams` method
on macro token. All parameters are mapped to corresponding fields.
Introduce CustomSessionParameter to access parameters in
TemplateApplicationSession.
2021-09-21 17:54:51 +02:00
Fedor Isakov
a5105e666a
Update build scripts
2021-09-21 17:54:50 +02:00
Fedor Isakov
a22d360c13
Add reexport on coderules.runtime in controlflow sample, fix build
2021-08-17 09:30:49 +02:00
Fedor Isakov
f96211273c
Drop hack for finding refs in LateParameter, switch to internal var ref
2021-08-17 09:30:49 +02:00
Fedor Isakov
6b0526ba31
Introduce language j.m.l.types to contain aspect-related generator mappings
2021-08-17 09:29:21 +02:00
Fedor Isakov
b1fbf7265e
Update plugin version and platform compatibility
2021-07-29 15:17:18 +02:00
Fedor Isakov
c4db4fcafe
Set generator options: strict=false in build scripts
2021-07-29 14:18:29 +02:00
Fedor Isakov
617a7d77a5
Fix build script
2021-07-29 12:46:57 +02:00
Fedor Isakov
4ea1d0cadd
Feature: isGround and isNonground predicates, MPSCR-94
2021-07-22 13:59:19 +02:00
Fedor Isakov
2425fe933a
Ensure dependency is tracked for nested expand macro applications
...
Expand macro passes the rule's input to nested macro calls.
This adds the macro input as the dependency of the rule's input.
As a result, incremental processing starts working in some cases.
2021-06-30 18:25:46 +02:00
Fedor Isakov
c4811d7d74
Migration of types aspect
...
Add types aspect devkit, remove engaged in generation.
2021-06-29 14:51:10 +02:00
Fedor Isakov
dd8c5ffb07
Introduce types aspect devkit and genplan
2021-06-29 14:51:10 +02:00
Fedor Isakov
9ea7ae2067
Better naming scheme for downloadable artefacts
2021-06-21 18:35:48 +02:00
Fedor Isakov
9826290f78
Fix building and packaging the plugins
2021-06-21 17:50:00 +02:00
Fedor Isakov
a8b0b13513
Include build solution into coderules plugin; fix file name
2021-06-18 18:41:01 +02:00
Fedor Isakov
9527a097b8
Migrate to the latest MPS release, apply migrations
2021-06-18 18:41:01 +02:00
Fedor Isakov
02baab4100
Optimize AspectLookup: avoid traversing descendants of input
2021-05-18 12:32:03 +02:00
Fedor Isakov
1d620cdd63
Drop obsolete unused features, cleanup the code
2021-05-18 12:32:03 +02:00
Fedor Isakov
24ce9167bf
Drop second implementation of aspect lookup, unify usages of AspectLookup
2021-05-18 12:32:03 +02:00
Fedor Isakov
1bb8763816
Refactor AspectLookup to depend on repository, cache results
2021-05-18 12:32:03 +02:00
Fedor Isakov
4ee3869b45
Introduce a means to use direct reference to INamedConcept in rules
2021-05-13 15:54:42 +02:00
Fedor Isakov
637da7d966
Apply migration and rebuild project
2021-05-04 18:24:30 +02:00
Fedor Isakov
ea6e930954
Apply migration and rebuild project
2021-05-04 18:24:29 +02:00
Fedor Isakov
287c31c9f7
Process only pattern's top-level node when coercing
...
Ignore all contents of a pattern but the top level.
This covers most situations.
The pattern ought to provide information as to which
nodes are capturing variables.
2021-04-29 14:53:19 +02:00
Fedor Isakov
ab87c8a129
Support strong convert/coerce queries
2021-04-28 08:54:25 +02:00
Fedor Isakov
cce261ec8c
Fix cleaning up the caches on modules reload
2021-04-28 08:54:25 +02:00
Fedor Isakov
450f2e5989
Fix coerce to pattern with antiquotations.
...
A node from a pattern with antiquotations is treated as a "hollow"
type with only the form defined, and all parameters being capturing
variables.
This is a workaround for certain kinds of coerce queries that define
unsound pattern nodes.
2021-04-28 08:54:25 +02:00
Fedor Isakov
cff18e7ca5
Optimize RulePlanHandler
...
Avoid iterating over LinkedHashMap (ineffective).
Do topo-sort only once on creating the object.
2021-04-21 10:40:51 +02:00
Fedor Isakov
394cb720c1
Optimize program producing: drop checking of constraints
...
Constraints arity is no longer checked.
Checking for null arguments to constraints is done
in AbstractConstraint's constructor.
2021-04-19 22:55:09 +02:00
Fedor Isakov
ff6b5ec6ae
Apply migrations and rebuild project
2021-04-14 13:19:50 +02:00
Fedor Isakov
49357ab87a
Drop all usages of "principal store" and "preamble" feature
2021-04-13 22:57:06 +02:00
Fedor Isakov
008887944d
Refactor "incremental" tests launcher to not rely on incrementality
...
The incremental algorithm using history and replay/revalidate of
matches is deprecated and will be removed soon. The incremental tests
are now relying on the UpdataRecorder and RulePlanHandler to
implement incrementality.
2021-04-12 12:47:44 +02:00
Fedor Isakov
1769998f7f
Implement Rule.isBasis contract, fix feedback basis processing
...
Invalidated rules set invalidates feedback that has any of them it in its basis.
Validated rules invalidates feedback that has all of validated
rules in its basis set.
2021-04-12 12:47:44 +02:00
Fedor Isakov
87a843088c
Cosmetics: report ERR on a query finished with !success status
2021-04-12 12:47:44 +02:00