Commit Graph

1094 Commits

Author SHA1 Message Date
Fedor Isakov 1707b1ab85 Bump up the plugin version(s) 2024-06-16 16:25:18 +02:00
Fedor Isakov a19d02b8ae Switch initialization to use ModuleActivator; drop unused imports 2024-06-16 16:11:38 +02:00
Fedor Isakov 64ed2d41b8 Update models to reflect changes in reactor API 2024-06-14 13:45:54 +02:00
Fedor Isakov 27e3ec3951 Fix and re-enable CheckProjecModules test 2024-06-13 22:09:11 +02:00
Fedor Isakov ba6f509909 Reimplement occursCheck with DataFormWalk 2024-06-13 20:11:19 +02:00
Fedor Isakov 658f9a48c0 Enable DataFormWalk to walk variables checking for cycles 2024-06-13 20:10:39 +02:00
Fedor Isakov 9aa9680ba1 Refactor DataForm.Visitor to use default methods; drop Stub 2024-06-13 17:40:23 +02:00
Fedor Isakov d63d261044 Drop usages of "usages count" feature of MutableLogical 2024-06-13 15:49:51 +02:00
Fedor Isakov adb38f1a2c Drop optimization hack; Correctly handle non-term logicals 2024-06-13 15:46:13 +02:00
Fedor Isakov b053cd7c3e Drop the rest of "incremental" stuff 2024-06-13 12:22:57 +02:00
Fedor Isakov 9ca2fdd8d0 Refactor usages of LogicalImpl, drop dependencies
Drop dependencies to j.m.logic.r.core.internal.
2024-06-13 10:45:59 +02:00
Fedor Isakov 0d192feaae Drop all TestInfo instances from the project 2024-06-07 10:32:44 +02:00
Fedor Isakov 5516f062f1 Fix code broken because of dropped API 2024-04-29 17:59:41 +02:00
Clement de La Bourdonnaye fd9e2d2678 MPS-36807: new icons instead of DynamicIcon for widget 2024-01-24 10:08:14 +01:00
Clement de La Bourdonnaye 0776351977 Ran CleanStubForeignMethodIds migration 2024-01-23 16:33:23 +01:00
Clement de La Bourdonnaye 00732a95a5 Build script: make plugin packaging the first in layout
This fixes dependencies, as the build language uses the first layout for a given module defined in the build model
Having coderules-ideaplugin folder before the plugin changed the way dependencies generate their build script, while the artifacts stayed with the same structure
2024-01-11 14:39:09 +01:00
Clement de La Bourdonnaye c96f65ec64 NewUI - restore old ui icons for usage when new UI disabled 2024-01-11 14:38:03 +01:00
Clement de La Bourdonnaye b67efbfa27 NewUI - package svg typeModel instead of removed png 2023-12-15 12:00:10 +01:00
Vaclav 5114fd8f7c NewUI - add new svg icons replacing the old png ones. Update the icon resources using these icons. 2023-12-14 16:10:32 +01:00
Fedor Isakov 6931d94adb Drop obsolete code 2023-11-14 18:02:23 +01:00
Fedor Isakov d92521b791 Run migrations 2023-11-08 16:46:16 +01:00
Fedor Isakov 6e95ec9959 Update change notes 2023-10-16 13:00:09 +02:00
Fedor Isakov 7273d88296 Provisinally disable reporting of cache state: cache always dirty
This is to ensure messages reported by typechecking are updated.
2023-10-16 11:55:32 +02:00
Fedor Isakov 04416a927b Make all expand template params optional
As part of migration add NullLiteral as init field to all
expand macro parameters so that the generation runs smoothly.
The user is then expected to remove init fields for required params.
2023-10-16 11:55:32 +02:00
Fedor Isakov fc8451e63d Run migration 2023-10-13 18:13:09 +02:00
Fedor Isakov 20a0bedd81 Refactor call macro cstr: keep arguments in binding list
The idea is to have default parameters in (regular) macro definition.
Refactoring and corresponding migration.
2023-10-13 18:13:09 +02:00
Fedor Isakov 8d9b3d4730 Fix behaviour method signature 2023-10-13 18:13:09 +02:00
Fedor Isakov fd0430a6eb Better editors and substitute actions for macroses
Now all invocations of a macro start with "apply" keyword.
An "expand" macro has an additional parameter after "with" -- the input.
2023-10-13 18:13:09 +02:00
Fedor Isakov 607e54a290 Macro fails to generate if logical or parameters are inconsistent
In addition to a typechecking rule make generator report an error.
2023-10-13 18:13:09 +02:00
Fedor Isakov de9fd05c45 Intentions and methods to facilitate working with macros 2023-10-13 18:13:09 +02:00
Fedor Isakov 5fafd1b0dc Code review: mark things to be done 2023-10-13 18:13:08 +02:00
Fedor Isakov 87a1b413d1 Ensure ancestors of a changed node are in changeset
This fixes incremental update in some situations.
2023-10-13 18:13:08 +02:00
Fedor Isakov 4e77530d20 Drop usages of deprecated feature: ApplicableConcept 2023-10-13 18:13:08 +02:00
Fedor Isakov f3010743c1 Migration: FixExpandMacroTemplate 2023-10-13 18:13:08 +02:00
Fedor Isakov 8f8fa9f4d4 Fix build script 2023-10-04 12:52:09 +02:00
Fedor Isakov 530ace6399 Rework editor for expand macro template and prototype
Expand macro prototype: "virtual macro".
Expand macro template: "override".
Override macro displays parameters declared in the prototype as R/O.
Introduce "usages" of prototype parameters to serve as local anchors;
this avoids problems with generation.
The existing code is going to work as before, but marked as erroneous
until migrated.
2023-10-04 12:52:09 +02:00
Fedor Isakov 504ae89af3 Consider only LogicalVars when looking for arguments to LateExpr 2023-09-28 12:10:39 +02:00
Fedor Isakov a85d570604 Enable entering DataNodeExpr within LateExpr 2023-09-28 12:10:39 +02:00
Fedor Isakov f130938a16 NPE guard in project plugin initializer; MPSCR-140 2023-09-28 12:10:39 +02:00
Fedor Isakov c6f632583f Specify displayName for configurable page 2023-09-28 12:10:39 +02:00
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 e5538bc39f A bunch of refactorings and cleanups in trace view
- cleanup the code, rename symbols for better readability
 - drop dead code
 - support for optionally showing empty template trace nodes
 - display node path for source nodes
2023-06-21 15:27:05 +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 11a1037860 Minor refactoring and code cleanup 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 6150702e92 Drop references to template dropped upstream 2023-05-03 10:50:10 +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 08733317ef Null guard. MPSCR-126 2023-02-23 17:29:02 +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 8f42a025bc Rewrite topo sorting of macro tables 2022-09-08 14:07:06 +02: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 bb47403b0c Fix generating of synth recover terms table 2022-08-22 11:19:59 +02:00
Fedor Isakov c4a157bf4d Bump up plugin versions 2022-08-16 18:11:49 +02:00
Fedor Isakov 26a3bd12dd Fix how output models are searched for checkpoints 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 40dd4bb31a Avoid dependency on a non-runtime solution 2022-07-28 10:30:38 +02:00
Fedor Isakov 83daafe180 Fix feature reference constraint 2022-07-28 10:30:38 +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 4bd681f3ee Fix support for require/requireAll statements in queries, MPSCR-108 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 837f7303a8 Fix test language broken after refactoring 2022-06-18 15:56:54 +02:00
Fedor Isakov ff1ceb7dda Update build script 2022-06-18 14:53:09 +02:00
Fedor Isakov 186c7b6a28 Fix auto-recovery of types with expect/assign/recover pseudo-constraints 2022-06-18 12:53:14 +02:00
Fedor Isakov dd0b9b2842 Intention to convert term table to types term table 2022-06-18 12:53:14 +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 77eb3f30c7 Implement a missing BH method 2022-06-13 11:11:57 +02:00
Fedor Isakov b46373701f WIP Reorganizing code 2022-06-08 10:23:43 +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 585f8f57f5 Switch to generating FQ names for constraint symbols 2022-05-26 12:52:25 +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 874a2a4b4e Ensure rule tags have unique group name 2022-05-25 13:49:11 +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 ddce418ba4 Ensure new list is initialized when recovering 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 1d54b8ffeb Fix NPE on first update of empty rules query 2022-02-17 17:05:41 +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
Fedor Isakov 98fef4c95d Fix NPE on newRules array being empty 2022-02-15 10:35:53 +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 d8a180bfe2 Test list feature recovery 2022-02-08 10:09:40 +01:00