You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit cc5de92
Browse filesBrowse the repository at this point in the historyBrowse files
docs(openspec): archive the intellij-run-marker-without-profilers change
Moves the change to the archive, with its tasks checked off and the results of
the harness check, and adds its requirement on the run marker's menu and the
message of Concurrency Diagram to the main spec intellij-run-configurations.
Copy file name to clipboardExpand all lines: openspec/changes/archive/2026-10-24-intellij-run-marker-without-profilers/design.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,3 +54,14 @@ The sentence in `running-tests.mdx` names the menu's entries without Profile, an
54
54
-[The executor ids `Profiler` and `ConcurrencyExecutor` are PyCharm's and could change] → the run marker filters by the ids of Run and Debug, which are the platform's; only the block of the two runs depends on PyCharm's ids, as the block of Profile already does.
55
55
-[Profile and Concurrency Diagram stay under "More Run/Debug" and in the run widget] → they end with a message there; see the non-goals.
56
56
-[A plugin's executor that could run Robot Framework configurations disappears from the run marker] → RobotCode's runners take only Run and Debug, so such an executor would run the configuration as a Python script.
57
+
58
+
## Verification
59
+
60
+
Harness rounds of 2026-10-24 in the UI-test PyCharm 2026.1 with the demo project, the first with `RobotCodeRunLineMarkerContributor.kt`, `RobotCodeProgramRunner.kt` and `RobotCode.properties` from HEAD, the second with the change. The entries of "More Run/Debug" were started as the entry does, with `ExecutionUtil.doRunConfiguration` for the configuration of the test.
61
+
62
+
-**Run marker, test "Order Coffee" and line 1 of `tests/orders.robot`:** before, Run, Debug, Profile, Concurrency Diagram, Run with Profile..., Debug with Profile... and Modify Run Configuration…; after, the same without Profile and Concurrency Diagram, on both markers.
63
+
-**"More Run/Debug" on the test:** Profile, Concurrency Diagram and Modify Run Configuration…, before and after.
64
+
-**Runners that take the configuration of the test** (all of them, not only the first): for `Profiler`, `RobotCodeProfileRunner` and PyCharm's `com.intellij.python.profiler.PythonProfileRunner`; for `ConcurrencyExecutor`, before only PyCharm's `PyConcurrencyDebugRunner`, after `RobotCodeProfileRunner` first. PyCharm's own runners take Robot Framework run configurations for both executors, so the entries cannot be hidden outside the run marker, as the non-goals say.
65
+
-**Profile:** before and after the notification "Error running 'Test Order Coffee': Robot Framework runs cannot be profiled.", no process.
66
+
-**Concurrency Diagram:** before, the test ran under PyCharm's debugger (exit 0, "Tests passed: 1"), and `idea.log` got an error of the Python plugin ("[Split debugger] RunContentDescriptor should not be used in split mode"), shown as "IDE error occurred". After, the notification "Error running 'Test Order Coffee': Robot Framework runs have no concurrency diagram.", no process, no IDE error.
67
+
-**`idea.log`:** in both rounds only a SlowOperations error at startup, blamed on the harness's Robot server plugin; besides it, before the change the error of the Concurrency Diagram run, after it nothing.
Copy file name to clipboardExpand all lines: openspec/changes/archive/2026-10-24-intellij-run-marker-without-profilers/tasks.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,16 +2,16 @@
2
2
3
3
## 1. Plugin
4
4
5
-
-[] 1.1 In `RobotCodeRunLineMarkerContributor`, drop every `ExecutorAction` whose executor is neither Run nor Debug from the gutter actions before `withProfileActions` places the profile actions. Add a platform test, with test items set through `setTestItemsForTests` as in `RobotCodeDiscoveryProblemMarkersTest`, that the run marker of a test and of a suite offers no executor action besides Run and Debug while the profile actions and the platform's extra actions stay; register a further executor for the test so that the check does not depend on the executors of the test IDE. Verify that the new test fails without the change, and run the full `./gradlew test` and `./gradlew verifyPlugin` (no new usages apart from LSP4IJ's experimental API).
6
-
-[] 1.2 Let `RobotCodeProfileRunner` take the executor `ConcurrencyExecutor` besides `Profiler` for Robot Framework run configurations, and reject a run with the message of its executor; add `run.concurrencyDiagram.notSupported` = "Robot Framework runs have no concurrency diagram." to `RobotCode.properties`. Add a platform test that the runner takes both executors for a Robot Framework run configuration and no other executor, and that `execute` rejects each with its message. Verify with the full `./gradlew test`.
5
+
-[x] 1.1 In `RobotCodeRunLineMarkerContributor`, drop every `ExecutorAction` whose executor is neither Run nor Debug from the gutter actions before `withProfileActions` places the profile actions. Add a platform test, with test items set through `setTestItemsForTests` as in `RobotCodeDiscoveryProblemMarkersTest`, that the run marker of a test and of a suite offers no executor action besides Run and Debug while the profile actions and the platform's extra actions stay; register a further executor for the test so that the check does not depend on the executors of the test IDE. Verify that the new test fails without the change, and run the full `./gradlew test` and `./gradlew verifyPlugin` (no new usages apart from LSP4IJ's experimental API).
6
+
-[x] 1.2 Let `RobotCodeProfileRunner` take the executor `ConcurrencyExecutor` besides `Profiler` for Robot Framework run configurations, and reject a run with the message of its executor; add `run.concurrencyDiagram.notSupported` = "Robot Framework runs have no concurrency diagram." to `RobotCode.properties`. Add a platform test that the runner takes both executors for a Robot Framework run configuration and no other executor, and that `execute` rejects each with its message. Verify with the full `./gradlew test`.
7
7
8
8
## 2. Documentation
9
9
10
-
-[] 2.1 In `docs/src/content/docs/guides/pycharm/running-tests.mdx`, name the run marker's entries without PyCharm's Profile. Take the picture `running-gutter-menu` again in light and dark with its part of `playground/robotcode-demo/pycharm/guide-running.sh`, and let its alt text name the entries the menu shows. Mark finding J5 in `playground/pycharm-befunde.md` as resolved by this change. Verify that `npm run docs:build` passes.
10
+
-[x] 2.1 In `docs/src/content/docs/guides/pycharm/running-tests.mdx`, name the run marker's entries without PyCharm's Profile. Take the picture `running-gutter-menu` again in light and dark with its part of `playground/robotcode-demo/pycharm/guide-running.sh`, and let its alt text name the entries the menu shows. Mark finding J5 in `playground/pycharm-befunde.md` as resolved by this change. Verify that `npm run docs:build` passes.
11
11
12
12
## 3. Verification
13
13
14
-
-[] 3.1 In the UI-test PyCharm, before (plugin from HEAD) and after the change, on the test "Order Coffee" and on line 1 of its suite file: the run marker's menu, "Profile" and "Concurrency Diagram" under "More Run/Debug" in the editor's context menu, and `idea.log`. After the change, the menu shows Run, Debug, Run with Profile..., Debug with Profile... and Modify Run Configuration…; both entries of the context menu end with their message without a process and without an "IDE error occurred" notification. Record the results in design.md under a Verification section.
14
+
-[x] 3.1 In the UI-test PyCharm, before (plugin from HEAD) and after the change, on the test "Order Coffee" and on line 1 of its suite file: the run marker's menu, "Profile" and "Concurrency Diagram" under "More Run/Debug" in the editor's context menu, and `idea.log`. After the change, the menu shows Run, Debug, Run with Profile..., Debug with Profile... and Modify Run Configuration…; both entries of the context menu end with their message without a process and without an "IDE error occurred" notification. Record the results in design.md under a Verification section.
Copy file name to clipboardExpand all lines: openspec/specs/intellij-run-configurations/spec.md
+20-1Lines changed: 20 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -215,7 +215,7 @@ A Robot Framework run configuration without a valid Python interpreter SHALL sho
215
215
216
216
### Requirement: Run and Debug stay with RobotCode
217
217
218
-
Run SHALL show a Robot Framework run configuration in a Run tool window tab with the test tree and the console, and Debug SHALL start a session of the RobotCode debugger, whichever Python plugins are installed. "Run with Coverage" SHALL NOT be offered for Robot Framework run configurations, and "Profile" SHALL end with a message that Robot Framework runs cannot be profiled, without starting a process.
218
+
Run SHALL show a Robot Framework run configuration in a Run tool window tab with the test tree and the console, and Debug SHALL start a session of the RobotCode debugger, whichever Python plugins are installed. "Run with Coverage" SHALL NOT be offered for Robot Framework run configurations. "Profile" SHALL end with a message that Robot Framework runs cannot be profiled, and "Concurrency Diagram" with a message that they have no concurrency diagram, both without starting a process.
219
219
220
220
#### Scenario: Run
221
221
@@ -232,6 +232,11 @@ Run SHALL show a Robot Framework run configuration in a Run tool window tab with
232
232
-**WHEN** the user chooses "Profile" for a Robot Framework run configuration in PyCharm Professional
233
233
-**THEN** no process starts, the IDE shows the message that Robot Framework runs cannot be profiled, and no "IDE error occurred" notification appears
234
234
235
+
#### Scenario: Concurrency Diagram in PyCharm Professional
236
+
237
+
-**WHEN** the user chooses "Concurrency Diagram" for a Robot Framework run configuration in PyCharm Professional, for example under "More Run/Debug" in the editor's context menu
238
+
-**THEN** no process starts, the IDE shows the message that Robot Framework runs have no concurrency diagram, and no "IDE error occurred" notification appears
239
+
235
240
### Requirement: Gutter and context runs reuse their configuration
236
241
237
242
A gutter or context run SHALL reuse the existing configuration whose target names the same items, compared by their kind and full name and independent of line numbers, and SHALL NOT create a copy whose name ends with "(1)".
@@ -678,3 +683,17 @@ An error about a run configuration SHALL keep the run from starting; a warning S
678
683
679
684
-**WHEN** a configuration's interpreter was found without Robot Framework, the user installs Robot Framework into it and restarts RobotCode
680
685
-**THEN** the interpreter is checked again, and the configuration starts
686
+
687
+
### Requirement: The menu of a run marker offers what Robot Framework runs support
688
+
689
+
The menu of the run marker of a Robot Framework test, task or suite SHALL offer Run, Debug, Run with Profile..., Debug with Profile... and Modify Run Configuration…. It SHALL NOT offer PyCharm's Profile or Concurrency Diagram, or another executor besides Run and Debug.
690
+
691
+
#### Scenario: Menu in PyCharm Professional
692
+
693
+
-**WHEN** the user clicks the run marker of the test "Order Coffee" in PyCharm Professional
694
+
-**THEN** the menu shows Run, Debug, Run with Profile..., Debug with Profile... and Modify Run Configuration…, and neither Profile nor Concurrency Diagram
695
+
696
+
#### Scenario: Menu of a suite
697
+
698
+
-**WHEN** the user clicks the run marker on line 1 of a suite file in PyCharm Professional
699
+
-**THEN** the menu shows the same entries as the run marker of a test
0 commit comments