Commit Graph

1006 Commits

Author SHA1 Message Date
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