robotcode 2.8.0.dev548__tar.gz → 2.8.0.dev670__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -61,6 +61,16 @@ All notable changes to this project will be documented in this file. See [conven
61
61
 
62
62
  The documentation site is rebuilt on Astro and Starlight and reorganized into Getting Started, Guides and Reference by what the reader comes to do. A new home page shows RobotCode's features and an AI agent at work in short demos, and the news get tags and an RSS feed. All pages have new addresses; the old ones lead to the not-found page instead of redirecting. The What's New notification of the VS Code extension opens /news/latest/, which always leads to the newest release notes.
63
63
 
64
+ - **intellij:** Use the interpreter of the Robot Framework module ([1c77903](https://github.com/robotcodedev/robotcode/commit/1c77903e1757b875d142e3c34baf0827e95d42f8))
65
+
66
+ In a project with several modules, RobotCode now takes the interpreter
67
+ and the roots of the module that holds the Robot Framework project, not
68
+ the first module with an interpreter, and asks when several modules
69
+ qualify; the General page can change the module. Run configurations now
70
+ show in their editor when their interpreter lacks Robot Framework, a
71
+ target path is missing or a selected test is gone, and a run checks the
72
+ interpreter of its own configuration.
73
+
64
74
  - **intellij:** Show each test failure with the calls that led to it ([f577367](https://github.com/robotcodedev/robotcode/commit/f577367253a4b501d84de1659e7419b0755628e9))
65
75
 
66
76
  A failed test's details in PyCharm now list each failure with its calls as Python lists them, from the call in the test inward, as `File "<file>", line <n>, in <keyword>` with links to the lines. Several failures follow an empty line and each begins with its message, failures the test caught are marked "Caught:", and a keyword such as Wait Until Keyword Succeeds that ends with an error of its own is one failure. A double-click on a failed test now opens the call in the test that led to its first failure, and VS Code's exception widget lists the calls in the same order, from the test down to the failed keyword.
@@ -174,6 +184,26 @@ All notable changes to this project will be documented in this file. See [conven
174
184
  The test discovery understands the metadata that tests and tasks can
175
185
  have since Robot Framework 7.5.
176
186
 
187
+ - **language-server:** Highlight uses of keyword arguments as parameters ([e4ae168](https://github.com/robotcodedev/robotcode/commit/e4ae168c607daa0398e78e4c69a443b06a38e830))
188
+
189
+ Uses of an argument declared in [Arguments] now get the semantic token
190
+ type parameter, like the declaration, also in settings such as [Timeout]
191
+ and [Teardown] and wherever the [Arguments] line stands. Names in [Tags]
192
+ and [Documentation], which Robot Framework resolves with the caller's
193
+ variables, stay variables. Themes that style parameters show the uses
194
+ like their declaration.
195
+
196
+ Also plans making EXCEPT AS and item assignments references of the
197
+ variable they set (except-and-item-assignment-references).
198
+
199
+ - **language-server:** Find references on the prefix of a keyword call ([cdd522d](https://github.com/robotcodedev/robotcode/commit/cdd522d166b61293e72921d1e1e909e1d6ee37d7))
200
+
201
+ Find References on the library or resource name in front of a keyword, such
202
+ as `BuiltIn` in `BuiltIn.Log` or `shop` in `shop.Open Shop As`, now lists the
203
+ same places as on the import: where the library or resource file is imported
204
+ and every call with its name in front. In PyCharm, LSP Reference(s) shows
205
+ them there, and Show Usages and Find Usages on `BuiltIn` also list its calls.
206
+
177
207
  - **language-server:** Keep the references in step with the files on disk ([6959f55](https://github.com/robotcodedev/robotcode/commit/6959f553bfa50ea553fe354708039c6cdebf3e47))
178
208
 
179
209
  Find References, Rename, the references code lens and the unused hints now see the latest analysis of every file the language server knows: references stay while an analysis is renewed, deleted files and analyses that end after a document was closed leave nothing behind, and files created outside the editor are analyzed. A periodic check of the workspace files finds the changes the editor does not report, every robotcode.analysis.fileCheckInterval minutes (5 by default, also on IntelliJ's Analysis page), and the analysis cache drops the entries of deleted files and keeps no analysis with a failed import.
@@ -338,6 +368,34 @@ All notable changes to this project will be documented in this file. See [conven
338
368
  `robotcode discover all`, `tests` and `tasks` and `robotcode results show`
339
369
  now take `--show-tags / --no-show-tags` instead of `--tags / --no-tags`.
340
370
 
371
+ - **vscode:** Copy the versions in use for a report ([1e0d8f8](https://github.com/robotcodedev/robotcode/commit/1e0d8f8b32589035e61f652c428cdcea9e40268e))
372
+ - **vscode:** Open a new Documentation Viewer from a viewer's toolbar ([e4c6fe7](https://github.com/robotcodedev/robotcode/commit/e4c6fe78d11d654676ee0857ad8d77ec0ed84569))
373
+
374
+ A button at the end of a Documentation Viewer's toolbar opens a new viewer on
375
+ BuiltIn in the viewer's workspace folder, with the target field ready for
376
+ typing, where robotcode.documentationViewer.openLocation says. The commands are
377
+ renamed to match: "RobotCode: New Documentation Viewer" and "RobotCode: Copy
378
+ Documentation Viewer into New Window".
379
+
380
+ - **vscode:** Run tests in RobotCode's own terminal on Windows too ([fa71310](https://github.com/robotcodedev/robotcode/commit/fa713107f68e86cf425d1a5df9007e3898997033))
381
+
382
+ Runs in the run terminal now show their output on Windows as well and take
383
+ keys and Ctrl+C there, with the same line before each run, the same icon and
384
+ the same closing on a key as on Linux and macOS.
385
+
386
+ - **vscode:** Run tests in RobotCode's own terminal ([552a354](https://github.com/robotcodedev/robotcode/commit/552a3549a1dca1ca9a65ed9764da2062eff8dc3e))
387
+
388
+ Runs and debug sessions now start in a terminal of RobotCode, the new
389
+ default of `robotcode.debug.defaultConsole` and `console`. The run is
390
+ the terminal's process, without a shell, so the Python extensions type
391
+ no activation into it and every run gets the same environment. Each
392
+ run shows its command line as one types it, carries VS Code's command
393
+ decoration with Copy Command and Copy Output, keeps its command line
394
+ at the top while its output scrolls, and the terminal is reused for
395
+ the next run or closes on a key. Runs from the Test Explorer now keep
396
+ Robot Framework's exit code, so libraries such as Browser close their
397
+ processes at the end. `integratedTerminal` keeps the previous behavior.
398
+
341
399
  - **vscode:** Show each test failure with the calls that led to it ([04584c9](https://github.com/robotcodedev/robotcode/commit/04584c918481366afdbdf54afcd7712be7195e94))
342
400
 
343
401
  A failed test now gets one entry per failure in the Test Explorer instead
@@ -412,10 +470,24 @@ All notable changes to this project will be documented in this file. See [conven
412
470
 
413
471
  The robotcode command that VS Code terminals fall back to required /bin/bash, which Alpine-based containers, NixOS and FreeBSD don't have, and a space in the extension path, for example from a Windows user name like `John Doe`, split the path into two arguments in sh and cmd.
414
472
 
473
+ - **config:** Apply none of the profiles a disabled profile inherits from ([edaa183](https://github.com/robotcodedev/robotcode/commit/edaa183792ecbb1f9de72d6f68731e8fafc61545))
474
+
475
+ Selecting a disabled profile still applied the profiles two or more levels up
476
+ its chain: with ci disabled, inheriting from staging and staging from base,
477
+ `-p ci` applied base. An inherited profile now applies only when a profile that
478
+ inherits it applies, and an error in an `enabled` condition is reported once.
479
+
415
480
  - **config:** Apply extend- settings next to the setting they extend ([45eaa5b](https://github.com/robotcodedev/robotcode/commit/45eaa5be64de81459a585c5150681ef994e12622))
416
481
 
417
482
  A profile or file with both `variables` and `extend-variables` ignored the extend- setting, and an extend- setting in `[extend-profiles.<name>]`, for example in `.robot.toml`, did not add to the setting of the profile it extends. Now the setting applies first and its extend- setting adds to it.
418
483
 
484
+ - **debugger:** Let a run's variable replace an inherited one of any case on Windows ([82ea39e](https://github.com/robotcodedev/robotcode/commit/82ea39e6265b79dd44252f8ddc46e8bd72fbd4f9))
485
+
486
+ On Windows, a variable that a run's environment sets, such as `path` in
487
+ `robotcode.robot.env` or `Path` in a launch configuration's `env`, now
488
+ replaces the inherited one whatever its case. With Python 3.10, programs that
489
+ a test started could still see the old value.
490
+
419
491
  - **debugger:** Name the exception filters for tests and suites in the plural ([74823da](https://github.com/robotcodedev/robotcode/commit/74823da3e5d2332d7afad753992cb27f60797bf2))
420
492
 
421
493
  VS Code's Breakpoints view now shows "Failed Tests" and "Failed Suites", the
@@ -462,6 +534,71 @@ All notable changes to this project will be documented in this file. See [conven
462
534
  macOS ~/Library/Application Support, Windows %LOCALAPPDATA%) so the file
463
535
  is placed where RobotCode actually looks for it.
464
536
 
537
+ - **intellij:** Leave PyCharm's profilers out of the run marker menu ([0fda1cd](https://github.com/robotcodedev/robotcode/commit/0fda1cd9b538efe1a543a8d3ebb2e61c2b6b8d06))
538
+
539
+ The menu of a run marker no longer offers PyCharm Professional's Profile and
540
+ Concurrency Diagram, which Robot Framework runs don't support. Concurrency
541
+ Diagram, which More Run/Debug and the run widget still offer, now ends with a
542
+ message as Profile does, instead of running the test under PyCharm's debugger.
543
+
544
+ - **intellij:** Remove the gap above tables in the documentation ([7eb4cd3](https://github.com/robotcodedev/robotcode/commit/7eb4cd3f666189ea763fdd60ab98b46a5346ff66))
545
+
546
+ Quick Documentation, the hover and the Ctrl+hover hint left a large gap between
547
+ a heading and the table below it: between "Arguments:" and the arguments of a
548
+ keyword, and between the name of a library or resource file and its version and
549
+ scope. The pictures of the documentation in the PyCharm guide and on the home
550
+ page show it without the gap.
551
+
552
+ - **intellij:** Show the Ctrl+hover documentation without extra gaps ([83b3b44](https://github.com/robotcodedev/robotcode/commit/83b3b44a79183d6f570fe5dee6f9f24573d6b387))
553
+
554
+ In PyCharm, the documentation that appears when Ctrl is held over a
555
+ keyword or an import no longer shows a large empty area in front of
556
+ tables and an extra empty line after each heading and paragraph. It is
557
+ spaced as in Quick Documentation.
558
+
559
+ - **intellij:** Find the usages of a resource file from its import ([cc1915c](https://github.com/robotcodedev/robotcode/commit/cc1915c0dec58552835432a66e3c25552974c8c4))
560
+
561
+ Find Usages and Show Usages on a resource import now list where the
562
+ resource file is imported and where its keywords are called with its name
563
+ in front; before, they found nothing. In a Robot Framework file, both now
564
+ search for the name at the caret, as VS Code does.
565
+
566
+ - **intellij:** Find the usages of library keywords called with a prefix ([52a4e81](https://github.com/robotcodedev/robotcode/commit/52a4e814bcfd0ed40171434911c1be7dbf7470d6))
567
+
568
+ Find Usages and Show Usages on the keyword of a call such as `BuiltIn.Log`
569
+ or `Collections.Append To List` searched the library instead, and Show
570
+ Usages jumped to it. They now find the usages of the keyword, as on a call
571
+ without a prefix.
572
+
573
+ - **intellij:** Underline only the name under the mouse on Ctrl+hover ([f64d4c2](https://github.com/robotcodedev/robotcode/commit/f64d4c2b7d8167982ca7f29d6fb805b4605fa18c))
574
+
575
+ Holding Ctrl over a keyword call with a library or resource prefix in a
576
+ Robot Framework file, such as `BuiltIn.Log`, now underlines only the
577
+ prefix or the keyword under the mouse, and the hint describes the target
578
+ of that part. A variable with a type, such as `${arg2: str}`, is
579
+ underlined without the type.
580
+
581
+ - **intellij:** Name the kind of a place in Show Usages for Robot files ([e1c53fc](https://github.com/robotcodedev/robotcode/commit/e1c53fca51a1ad9e535a230885c5ca21c3ba458a))
582
+
583
+ Show Usages and Find Usages titled a keyword or variable in a Robot
584
+ Framework file "LSP Usage Triggered Psi Element", and a local variable
585
+ or keyword argument "LSP Symbol ${". They now name its kind and name,
586
+ such as "Keyword Open Shop As", "Argument user" or "Variable greeting".
587
+ The pictures of Show Usages in the PyCharm guide show the new title.
588
+
589
+ - **intellij:** Show only the preview in the preview tab of a report or log ([5b2abd3](https://github.com/robotcodedev/robotcode/commit/5b2abd332ff32a850cfaa077adbfc780988b9741))
590
+
591
+ A plugin whose editor opens every binary file, such as a hex viewer, no
592
+ longer adds a tab of its own next to the preview of a report or a log;
593
+ the preview's file type also gets a display name of its own.
594
+
595
+ - **intellij:** Keep LSP4IJ's language server suggestion off the preview tab ([5f16aa6](https://github.com/robotcodedev/robotcode/commit/5f16aa613f8ac7b1f4694c87ffc8f37ebea1e8c1))
596
+
597
+ The preview tab of a report or a log no longer shows LSP4IJ's bar
598
+ "*.html files are supported by language servers (LSP4IJ)" with an offer
599
+ to install the Harper language server: the IDE no longer takes the tab
600
+ for a plain text file, and its title, icon and page stay as they were.
601
+
465
602
  - **intellij:** Select the server log and polish small UI details ([397feb8](https://github.com/robotcodedev/robotcode/commit/397feb8b0c4838fd5e0eb06061afd72efde7cdb0))
466
603
 
467
604
  Show Language Server Log now selects the running RobotCode language server and its Logs tab in the Language Servers tool window instead of only opening the window. The Select Configuration Profiles dialog keeps a gap between a profile's name and its description, Find Action no longer lists the internal action that RobotCode's code actions use, and the help text of Open output after run names Open output target instead of an external browser.
@@ -539,6 +676,21 @@ All notable changes to this project will be documented in this file. See [conven
539
676
  Use the plugin's own RobotCodeBundle with a new command.typing.name key instead. The
540
677
  displayed command name ("Typing") is unchanged.
541
678
 
679
+ - **language-server:** Offer the documentation actions in inline IF and Run Keyword ([b99fd04](https://github.com/robotcodedev/robotcode/commit/b99fd0409c549d9c2f0ed1f6a83536f63bdd255d))
680
+
681
+ With the experimental semantic model, a keyword in the body of an inline
682
+ IF or in the arguments of Run Keyword and its variants, nested ones too,
683
+ now has the documentation actions and the link to the Documentation
684
+ Viewer in the heading of its hover, as without the semantic model.
685
+
686
+ - **language-server:** List the declaration after the usages in Find References ([a486486](https://github.com/robotcodedev/robotcode/commit/a4864866eee781cb9eb33d54b15878f04e58fd4d))
687
+
688
+ In PyCharm, LSP Reference(s) did nothing on a library keyword such as `Log`
689
+ or `Append To List` and on a variable from a Python variables file: LSP4IJ
690
+ searched from the first location, the definition in the Python file. Find
691
+ References now lists the usages first and the definition last, so the popup
692
+ shows them. VS Code sorts the locations itself and shows the same list.
693
+
542
694
  - **language-server:** Analyze again every file that imports a changed file ([3758967](https://github.com/robotcodedev/robotcode/commit/3758967b11ef93f4b034d8cd0fe79a7744d1ce46))
543
695
 
544
696
  After a resource file changed, some of the closed files that import it could keep their old analysis, so Find References, Rename and the unused hints went on showing their old references until such a file changed or was opened; typing in a resource file that many suites import could leave dozens of them behind. Analyzing an unchanged closed file again now also reuses its own keywords, variables and imports, which saves memory and time in the language server.
@@ -657,6 +809,30 @@ All notable changes to this project will be documented in this file. See [conven
657
809
  `python-path`, still apply. Run `robotcode --verbose repl` to see which
658
810
  options were ignored.
659
811
 
812
+ - **robot:** Keep the keyword documentation of a cached semantic model ([27535f5](https://github.com/robotcodedev/robotcode/commit/27535f5385b754ba49aed4d4220854b6cc214414))
813
+
814
+ With the experimental semantic model, a file that RobotCode restored from
815
+ its analysis cache after a restart and that was then opened without changes
816
+ had no documentation actions, no link in the hover's heading and no
817
+ documentation links in the signature help for BuiltIn keywords until it was
818
+ edited. The cached analysis now refers to the keywords of the restored file.
819
+
820
+ - **robot:** Show no library scope for variable files ([36059ad](https://github.com/robotcodedev/robotcode/commit/36059adbd475eb0390dbeb271d922dd2f1533209))
821
+
822
+ The hover of a variable file import no longer lists "Library Scope:
823
+ GLOBAL", because Robot Framework knows no scope for variable files.
824
+ Resource and suite files keep it, as Robot Framework's Libdoc shows it
825
+ for them too.
826
+
827
+ - **robot:** Count EXCEPT AS and item assignments as uses of their variable ([fe3eb81](https://github.com/robotcodedev/robotcode/commit/fe3eb8193fd213b9f4662e47e61c3783d3bcae8d))
828
+
829
+ EXCEPT AS with the name of an argument or local variable and, on Robot
830
+ Framework 6.1 and newer, item assignments such as ${items}[0]= now refer
831
+ to the variable they set again, so Find References lists them and Rename
832
+ renames them. Variables in the index of an item assignment count as uses,
833
+ and an item assignment to an unknown variable or with an unknown variable
834
+ in its index reports it as not found, as Robot Framework fails there.
835
+
660
836
  - **robot:** Convert reStructuredText documentation without the writer_name that Docutils deprecates ([d5520c9](https://github.com/robotcodedev/robotcode/commit/d5520c93c43e8dec0d2e2878d16227efd354888e))
661
837
 
662
838
  Docutils 0.22 and newer warn that the `writer_name` argument will be removed in Docutils 2.0. The documentation is now converted with an instance of the HTML5 writer, which every Docutils version takes and which renders the same HTML as before, checked with Docutils 0.16, 0.18, 0.21 and 0.23.
@@ -748,6 +924,14 @@ All notable changes to this project will be documented in this file. See [conven
748
924
 
749
925
  `--dry` still started the configured wrapper, so its setup and teardown brought real environments up and down; a dry run now only names the wrapper. Profile errors such as an unknown profile name are also no longer printed twice by the commands that run Robot Framework.
750
926
 
927
+ - **runner:** Discover tests without a line number ([9f3077d](https://github.com/robotcodedev/robotcode/commit/9f3077d8adb868db8bbcb1dc34a08b6a0cfad275))
928
+
929
+ `robotcode discover` no longer fails as a whole when a custom parser or
930
+ a pre-run modifier creates a test without a line number, so VS Code and
931
+ PyCharm show the tests of such a project. Runs report such a test, its
932
+ result and its messages under the ID of its discovery, and PyCharm
933
+ counts it in the test count of the run.
934
+
751
935
  - **runner:** Pass a positional path outside the project root as an absolute path ([0c6218f](https://github.com/robotcodedev/robotcode/commit/0c6218f71d215d5692730e73ce06e33700b765ff))
752
936
 
753
937
  Positional paths of `robot`, `robot-debug` and `discover` are relative to the working directory and are rewritten relative to the project root the run changes into. For a path outside that root, for example `robotcode --root /tmp/repro discover all .` run from `/tmp`, the rewrite failed with a traceback (`ValueError` from `relative_to`); such a path is now passed on as an absolute path, which stays valid after the change of directory.
@@ -796,6 +980,62 @@ All notable changes to this project will be documented in this file. See [conven
796
980
 
797
981
  Environment variables no longer swallow the rest of their row, and comments right after a keyword or marker, RETURN, the FOR separators, item access such as ${LIST}[0], AS in EXCEPT and Library, and default values in [Arguments] are highlighted correctly in VS Code, IntelliJ, Markdown views and on the documentation site. REPL scripts and notebook cells now use the same grammar, so multiple assignments, nested variables, BREAK, CONTINUE and GROUP are highlighted there too.
798
982
 
983
+ - **vscode:** Fill the Keywords view once the language server has started ([599ad73](https://github.com/robotcodedev/robotcode/commit/599ad73808c54bc7ddf77703acd7d831316004fc))
984
+
985
+ When VS Code restores an open Robot Framework file at startup, the Keywords
986
+ view shows its keywords as soon as the language server runs, without closing
987
+ and reopening the file. Canceled requests of the view no longer show up as
988
+ errors in RobotCode's output (#644).
989
+
990
+ - **vscode:** Show only the run's command line in a reused terminal's sticky scroll ([f3966fe](https://github.com/robotcodedev/robotcode/commit/f3966fea854ee103dd3004f79ad5389501d08301))
991
+
992
+ When a run terminal is reused, VS Code's sticky scroll shows only the command
993
+ line of the current run. Copy Output of a run ends with the line about the
994
+ terminal's reuse.
995
+
996
+ - **vscode:** Keep the terminal in front at the first run of a window ([f15c1a5](https://github.com/robotcodedev/robotcode/commit/f15c1a53170271fef7745bf4fc7a7f1ac135e173))
997
+
998
+ When a run writes its output to a terminal, VS Code no longer switches the
999
+ panel to the Debug Console at the first run of a window. A value of
1000
+ debug.internalConsoleOptions in the settings or internalConsoleOptions in a
1001
+ launch configuration still decides when the Debug Console opens.
1002
+
1003
+ - **vscode:** Report environment problems at startup only if they remain ([b0cbfaa](https://github.com/robotcodedev/robotcode/commit/b0cbfaad340bc8cfed309df77a3515627f187eae))
1004
+
1005
+ While VS Code starts or a folder is added, the Python extension may need
1006
+ some seconds to select the folder's environment. In these first 15 seconds
1007
+ RobotCode shows no environment message and no hint about a missing
1008
+ environment in the Testing view, the language status shows that it is
1009
+ still checking, and a problem that remains shows right after.
1010
+
1011
+ - **vscode:** Mark only the item with the problem in the language status ([e31651c](https://github.com/robotcodedev/robotcode/commit/e31651c8e8471718c6e1efd955f8288a5010156f))
1012
+
1013
+ When the Python environment has no Robot Framework, only the Robot Framework
1014
+ item of the language status is shown as an error; the Python item turns red
1015
+ only when the interpreter has a problem. The Robot Framework item shows the
1016
+ version RobotCode's environment check found while the language server is
1017
+ still starting, and "unknown" instead of "not installed" when the interpreter
1018
+ cannot be used.
1019
+
1020
+ - **vscode:** Let the Documentation Viewer wait for the Python environment ([9f76cc5](https://github.com/robotcodedev/robotcode/commit/9f76cc595ab7502aad8058ad782c901a5f78b0bf))
1021
+
1022
+ After a restart, a Documentation Viewer no longer fails with an error and a
1023
+ Retry button while the Python extension is still selecting the folder's
1024
+ environment. It shows the page it showed last, says that it waits, and loads
1025
+ the page by itself once the environment is usable; only a problem that lasts
1026
+ 30 seconds shows as an error. A viewer also follows when another environment
1027
+ is selected for its folder.
1028
+
1029
+ - **vscode:** Keep the test tree in step with changed files ([b257df0](https://github.com/robotcodedev/robotcode/commit/b257df09e5699f4e83dd5505aeba945b3b68cfab))
1030
+
1031
+ The Test Explorer now follows every change of a suite file: with several
1032
+ paths in robot.toml its tests keep their results and can be run, tasks
1033
+ stay after an edit, and files changed outside VS Code, restored under an
1034
+ open tab or changed together in one edit are read again. The top-level
1035
+ suite of several paths can be run again, and Run Tests and Debug Tests
1036
+ run every workspace folder. In PyCharm, an edit in a project with
1037
+ several paths no longer starts a full discovery.
1038
+
799
1039
  - **vscode:** Start the terminal REPL in the folder's Python environment ([3852a99](https://github.com/robotcodedev/robotcode/commit/3852a99d5c53d0605b937fd00cf63b8f112ea783))
800
1040
  - **vscode:** Pass launcherExtraArgs to robotcode in every debug launcher mode ([1e2834d](https://github.com/robotcodedev/robotcode/commit/1e2834da05d9c898beaf571811722f09e96957b3))
801
1041
 
@@ -871,11 +1111,447 @@ All notable changes to this project will be documented in this file. See [conven
871
1111
 
872
1112
  The profile examples replaced `variables` instead of extending them and set a number where a string is required, the user configuration is per user and created when it is missing, profiles with the same precedence keep the order they are selected in, and the `extend-*` keys of the analyze settings only take effect in an `extend-<section>` table such as `[tool.robotcode-analyze.extend-modifiers]`.
873
1113
 
1114
+ - **contributing:** Describe the tests of the VS Code extension and the PyCharm plugin ([44d2551](https://github.com/robotcodedev/robotcode/commit/44d25517a6809af730d483d8fcc2e95f66085e60))
1115
+
1116
+ The contribution guide and the pull request template now ask for the tests of every changed part, explain how to run, try and verify the PyCharm plugin, list what the CI runs and ask for tests that pass on Linux, Windows and macOS. The commit types and scopes match the ones in use.
1117
+
874
1118
  - **contributing:** Describe how to regenerate the CLI reference ([5ff48c8](https://github.com/robotcodedev/robotcode/commit/5ff48c8ad8c269b553c175ed23d4d04b0bbbed41))
875
1119
  - **debugger:** Fix the links to exception breakpoints ([5a12cce](https://github.com/robotcodedev/robotcode/commit/5a12ccef5923da11b109fe3510d07e14e3af5c26))
876
1120
 
877
1121
  Both links pointed to an exception-breakpoints anchor that no heading of the robot-debug page has; they now point to the debug commands section, which describes the exception filters.
878
1122
 
1123
+ - **intellij:** Rewrite the plugin's Marketplace description ([106a101](https://github.com/robotcodedev/robotcode/commit/106a101165c5893629aacac12517f9725f314e7b))
1124
+
1125
+ The description no longer calls the plugin not ready for production use. It
1126
+ says what RobotCode is for, lists its features in PyCharm, the requirements
1127
+ and the first steps, and links to the PyCharm guide on robotcode.io. On
1128
+ GitHub, the JetBrains logo shows again.
1129
+
1130
+ - **openspec:** Archive the intellij-run-marker-without-profilers change ([cc5de92](https://github.com/robotcodedev/robotcode/commit/cc5de92bcc661c766d47cfaf53daaf87bb36773a))
1131
+
1132
+ Moves the change to the archive, with its tasks checked off and the results of
1133
+ the harness check, and adds its requirement on the run marker's menu and the
1134
+ message of Concurrency Diagram to the main spec intellij-run-configurations.
1135
+
1136
+ - **openspec:** Plan a run marker menu without PyCharm's profilers ([d0cfc19](https://github.com/robotcodedev/robotcode/commit/d0cfc197cf15260fe126cdf0d4f5e8ab67dc2b59))
1137
+
1138
+ The run marker of a Robot Framework test is to offer only Run, Debug, the runs
1139
+ with a profile and Modify Run Configuration, without PyCharm's Profile and
1140
+ Concurrency Diagram, and Concurrency Diagram is to end with a message wherever
1141
+ else PyCharm offers it, as Profile does.
1142
+
1143
+ - **openspec:** Replace the completion model branch with a parity test ([1fb272b](https://github.com/robotcodedev/robotcode/commit/1fb272bfc7341d439484bccee607c330e7f0c904))
1144
+
1145
+ Completion keeps taking its context from the current text: it works with
1146
+ the namespace of the last finished analysis, whose semantic model still
1147
+ describes the text before the latest keystrokes. The change now proves
1148
+ that completion answers the same on both analysis paths, over the test
1149
+ data, a document with incomplete input and the documents of the
1150
+ completion tests, and fixes what that finds in the SemanticAnalyzer.
1151
+ The TokenKind audit stays; ModelHelper stays in completion until the
1152
+ cleanup.
1153
+
1154
+ - **openspec:** Archive the semantic-model-cache-references change ([c5ee95c](https://github.com/robotcodedev/robotcode/commit/c5ee95c6fcdc645fa39c0c648d434b2a3b6e16b0))
1155
+
1156
+ Moves the change to the archive and adds the requirement for a restored
1157
+ semantic model to namespace-cache.
1158
+
1159
+ - **openspec:** Complete the semantic-model-cache-references change ([2646e5c](https://github.com/robotcodedev/robotcode/commit/2646e5cbe7ed8baa26a006e07a3d1883c3d77f45))
1160
+
1161
+ All tasks are checked off. The implementation added the inits of variables
1162
+ files to the restore, showed that the fallback init of a library with errors
1163
+ never reaches the cache and that entries written before the change count as
1164
+ a miss; the serialization section of the design document follows the new
1165
+ pickled state.
1166
+
1167
+ - **openspec:** Update the run terminal spec for sticky scroll after a reuse ([2fb8217](https://github.com/robotcodedev/robotcode/commit/2fb821732150b8c051f120852cdffd9dc8c7feaf))
1168
+
1169
+ Copy Output of a run ends with the line about the reuse, and the sticky scroll
1170
+ of a reused terminal shows only the run's command line.
1171
+
1172
+ - **openspec:** Archive the vscode-terminal-runs-without-debug-console change ([fe33479](https://github.com/robotcodedev/robotcode/commit/fe334790fd641e1772e66c232b5160356be63d81))
1173
+
1174
+ Moves the change to the archive, adds the requirement for the closed Debug
1175
+ Console to vscode-run-terminal and updates the running and debugging
1176
+ requirement of vscode-user-guide.
1177
+
1178
+ - **openspec:** Archive the semantic-model-hover change ([7079bc5](https://github.com/robotcodedev/robotcode/commit/7079bc5976d04bff0f2a63de3f452f4a741a4b13))
1179
+
1180
+ Moves the change to the archive and adds the new main spec
1181
+ semantic-model-hover.
1182
+
1183
+ - **openspec:** Plan restoring the keywords of a cached semantic model ([47e34db](https://github.com/robotcodedev/robotcode/commit/47e34db5f35323132032603b45d6c6aeb99279c4))
1184
+
1185
+ A model restored from the namespace disk cache holds copies of its
1186
+ keywords, and BuiltIn ones lose their library, so after a restart the
1187
+ semantic-model path offers no documentation for them until the file is
1188
+ edited. The change stores ids for keywords and imports when the model is
1189
+ pickled and maps them back on restore, as the design document planned.
1190
+
1191
+ - **openspec:** Plan keeping the Debug Console closed for runs in a terminal ([d26cda1](https://github.com/robotcodedev/robotcode/commit/d26cda1f4c52da9698e543114df980c569bbdeed))
1192
+
1193
+ A run in a terminal stays in front: VS Code no longer switches the panel to
1194
+ the Debug Console at the first run of a window, unless a launch configuration
1195
+ or the user's own debug.internalConsoleOptions setting says so.
1196
+
1197
+ - **openspec:** Complete the semantic-model-hover change ([2a47101](https://github.com/robotcodedev/robotcode/commit/2a47101f85ec36c994719ed268475f0afc78ad0e))
1198
+
1199
+ The change was narrowed while implementing it: hover keeps reading the
1200
+ reference lists, so it gives the model path the documentation targets of
1201
+ keywords in inline IF bodies and Run Keyword arguments and a parity test.
1202
+ The plans of the switchover, the cleanup and completion and the design
1203
+ document follow it; the granularity audit moves to completion.
1204
+
1205
+ - **openspec:** Bring the plan for the site's media up to date ([83b98ae](https://github.com/robotcodedev/robotcode/commit/83b98aedd1af0abbd0297296a17ae1a00005d393))
1206
+
1207
+ The plan deletes only the dark files of the home page tour and the About page,
1208
+ so the Mason screenshot of the Neovim page and the PyCharm screenshots of the
1209
+ v2.8.0 news post stay. It also notes what changed since it was written: the
1210
+ PyCharm guide's picture folder, the retaken PyCharm hover, the Halloween season,
1211
+ and the waits the PyCharm shots need.
1212
+
1213
+ - **openspec:** Complete the dev-builds-latest-run change ([e1cf3e6](https://github.com/robotcodedev/robotcode/commit/e1cf3e683908d60096e2263adea9ed86de8b7b06))
1214
+
1215
+ All tasks are done, the check of the manual publish run included; the change
1216
+ is archived after intellij-marketplace-publish, whose requirements it modifies.
1217
+
1218
+ - **openspec:** Archive the dev-builds-page change ([defe94a](https://github.com/robotcodedev/robotcode/commit/defe94a97aa88f53fcae40fe0a43c949c884b67c))
1219
+
1220
+ Moves the change to the archive and adds its requirement on the documentation
1221
+ of the dev builds to the main spec release-publishing.
1222
+
1223
+ - **openspec:** Update the semantic-model-hover plan to the current model ([56129a5](https://github.com/robotcodedev/robotcode/commit/56129a5394109686e8a0e235ffeda9d016c37536))
1224
+
1225
+ The plan now follows the model as it is: inner Run Keyword calls carry
1226
+ KEYWORD_INNER, a variable hover covers only its name, an [Arguments] entry
1227
+ is a PARAMETER token, and a definition is matched by its name range while
1228
+ find_variable() serves the uses. The test case hover keeps reading its
1229
+ documentation, tags and metadata from the test's RF node; storing them in
1230
+ the model was rejected.
1231
+
1232
+ - **openspec:** Complete the dev-builds-page change ([e6e8663](https://github.com/robotcodedev/robotcode/commit/e6e8663527350bb6b41876e4eb7e0626f1f3e714))
1233
+
1234
+ All tasks are done; the design records what the checks found while writing the page, such as how pip and uv go back from a dev version.
1235
+
1236
+ - **openspec:** Archive the contributor-checks change ([3a0883b](https://github.com/robotcodedev/robotcode/commit/3a0883b3e1ac1a638dec2585dab6257971a9ac05))
1237
+
1238
+ Moves the change to the archive, adds the new main spec development-container
1239
+ and adds the ESLint requirement to continuous-integration.
1240
+
1241
+ - **openspec:** Archive the vscode-copy-environment-info change ([909be3b](https://github.com/robotcodedev/robotcode/commit/909be3b5d8d421fc1e76bf93d0af5901cb42b001))
1242
+
1243
+ Moves the change to the archive, adds the new main spec vscode-environment-info
1244
+ and updates the troubleshooting requirement of vscode-user-guide.
1245
+
1246
+ - **openspec:** Plan a page about the dev builds ([4d56474](https://github.com/robotcodedev/robotcode/commit/4d56474a72141249e45111813414af7004d8c4ef))
1247
+ - **openspec:** Plan ESLint in the CI and the test tools in the dev container ([a8f0cbc](https://github.com/robotcodedev/robotcode/commit/a8f0cbc9d386cbfab271ccbbdd6fcedbc53079b7))
1248
+ - **openspec:** Archive the intellij-python-interpreter change ([ec14566](https://github.com/robotcodedev/robotcode/commit/ec14566c0ca99253839f679f195398b8c550117b))
1249
+
1250
+ Moves the change to the archive and adds its requirements on the module
1251
+ choice to the main spec intellij-python-environment, and those on the
1252
+ checks before a run, including remote interpreters in the editor, to
1253
+ intellij-run-configurations.
1254
+
1255
+ - **openspec:** Plan copying the environment info in VS Code ([50a4345](https://github.com/robotcodedev/robotcode/commit/50a434508a76c67d50c9c103b2049bf9b19c153b))
1256
+
1257
+ A command copies the versions of a workspace folder as a list for an issue,
1258
+ a forum post or a chat, also from the RobotCode menu (#260).
1259
+
1260
+ - **openspec:** Archive the pypi-dev-builds change ([4f2003c](https://github.com/robotcodedev/robotcode/commit/4f2003c7c0c9eb8c3f53f01c81e3a5d5aa6c43a4))
1261
+
1262
+ Moves the change to the archive and adds its requirements on the nightly dev
1263
+ builds of the Python packages to the main spec release-publishing.
1264
+
1265
+ - **openspec:** Plan conditions on the debugger's exception filters ([4d93a56](https://github.com/robotcodedev/robotcode/commit/4d93a56078fac267b65bda76ae811f0b5d0f2a0e))
1266
+
1267
+ The debugger is to honor the condition that VS Code lets the user set on
1268
+ "Failed Keywords", "Uncaught Failed Keywords", "Failed Tests" and "Failed
1269
+ Suites", and to offer the name and the message of the failure to it as
1270
+ ${EXCEPTION_NAME} and ${EXCEPTION_MESSAGE}.
1271
+
1272
+ - **openspec:** Archive the vscode-new-documentation-viewer change ([84923c6](https://github.com/robotcodedev/robotcode/commit/84923c69ed5d32b90b0d7644f0ac76f8b4fa09c9))
1273
+
1274
+ Moves the change to the archive and brings the main spec
1275
+ vscode-documentation-viewer up to date: the renamed commands and the new
1276
+ requirement for the button "New Documentation Viewer".
1277
+
1278
+ - **openspec:** Complete the vscode-new-documentation-viewer change ([7bfaec2](https://github.com/robotcodedev/robotcode/commit/7bfaec27d9157fab2f2b73a122110477ed075bec))
1279
+
1280
+ All tasks are done; D5 records that the button waits until VS Code reports its
1281
+ viewer as active.
1282
+
1283
+ - **openspec:** Archive the intellij-ctrl-hover-documentation change ([9939a18](https://github.com/robotcodedev/robotcode/commit/9939a18bcc4d97724c0ac40703915210b56eded3))
1284
+
1285
+ Moves the change to the archive and adds its requirement on the Ctrl+hover
1286
+ hint without extra empty lines to the main spec intellij-navigation.
1287
+
1288
+ - **openspec:** Archive the intellij-usages-from-caret change ([11275ad](https://github.com/robotcodedev/robotcode/commit/11275ad658b7b0fc3dd139768358d0481e4b208d))
1289
+
1290
+ Moves the change to the archive and adds its requirements on the usages of
1291
+ an import and on searching from the name at the caret to the main spec
1292
+ intellij-navigation.
1293
+
1294
+ - **openspec:** Plan the Ctrl+hover hint without extra empty lines ([bcc09a7](https://github.com/robotcodedev/robotcode/commit/bcc09a777eb40d3acacd95eb6e27ca8014609cf1))
1295
+
1296
+ In PyCharm, the documentation hint on Ctrl+hover shows a large gap in
1297
+ front of tables and an extra empty line after each paragraph, because
1298
+ LSP4IJ hands the hover's HTML over without marking it as HTML. The plan
1299
+ works around that in the plugin until LSP4IJ fixes it.
1300
+
1301
+ - **openspec:** Archive the reuse-unchanged-file-docs change ([22c0ca7](https://github.com/robotcodedev/robotcode/commit/22c0ca7514f381f4dea95eef551fbe7152a5c942))
1302
+
1303
+ Moves the change to the archive and adds its requirement to the main spec workspace-references: every file that imports a changed file is analyzed again, so Find References returns the new analyses. The CI after the push was green on Linux, Windows and macOS, which completes the last task.
1304
+
1305
+ - **openspec:** Archive the windows-run-env-names change ([e635022](https://github.com/robotcodedev/robotcode/commit/e63502207c529ede163bb7ec97450d7b9f2a8941))
1306
+
1307
+ Moves the change to the archive and adds its requirement on the environment
1308
+ names of a run on Windows to the main spec vscode-run-terminal.
1309
+
1310
+ - **openspec:** Archive the except-and-item-assignment-references change ([1423253](https://github.com/robotcodedev/robotcode/commit/1423253a4282c98d993241e9602a70698e2d8189))
1311
+
1312
+ Moves the change to the archive and creates the main spec
1313
+ variable-assignments with its requirements on EXCEPT AS, item assignments
1314
+ and the variables in their index.
1315
+
1316
+ - **openspec:** Archive the cached-docs-follow-languages change ([1f63280](https://github.com/robotcodedev/robotcode/commit/1f63280a511cd9292def04167e390c7583aae096))
1317
+
1318
+ Moves the change to the archive and adds its requirement to the main spec
1319
+ namespace-cache: a Robot Framework file that the analysis cache read with
1320
+ other language settings is read again. The CI after the push was green on
1321
+ Linux, Windows and macOS, which completes the last task.
1322
+
1323
+ - **openspec:** Archive the vscode-language-status-severity and vscode-environment-startup-phase changes ([1bbb399](https://github.com/robotcodedev/robotcode/commit/1bbb399acbf557ad7c85209ec4533568edc46baf))
1324
+
1325
+ Moves both changes to the archive and adds their three requirements to the
1326
+ main spec vscode-python-environment: the language status marks only the
1327
+ item with the problem, the Robot Framework item shows what the environment
1328
+ check knows, and a problem in the first 15 seconds after VS Code starts or
1329
+ a folder is added is provisional.
1330
+
1331
+ - **openspec:** Record the implementation of vscode-environment-startup-phase ([191fb31](https://github.com/robotcodedev/robotcode/commit/191fb31f85ca31923d6e78089f463b2aba071f1a))
1332
+
1333
+ All 8 tasks are done. The review let the timer of the startup phase end
1334
+ the phase itself; the design records the harness results before and after
1335
+ the change.
1336
+
1337
+ - **openspec:** Archive the vscode-run-terminal-python change ([6c8be28](https://github.com/robotcodedev/robotcode/commit/6c8be28d20dc2efe1fbc95ddd4c77c607ab1f492))
1338
+
1339
+ Moves the change to the archive and updates the requirement on the run
1340
+ terminal as the run's input and output in the main spec vscode-run-terminal:
1341
+ it holds on Windows too, and a second Ctrl+C ends a run that is stopping.
1342
+
1343
+ - **openspec:** Archive the argument-usage-tokens change ([6a20e89](https://github.com/robotcodedev/robotcode/commit/6a20e89b27496402508a2d2810ea232f95d287f4))
1344
+
1345
+ Moves the change to the archive and adds its requirement on parameter
1346
+ tokens for uses of keyword arguments to the main spec semantic-highlighting.
1347
+
1348
+ - **openspec:** Plan the run terminal in Python and Windows environment names ([7b83516](https://github.com/robotcodedev/robotcode/commit/7b8351630e284abca9a7eb24ab3550068048ac7c))
1349
+
1350
+ The run terminal gets a script that Python runs, so that runs show their
1351
+ output and take keys and Ctrl+C on Windows too, with the same look as on
1352
+ Linux and macOS. A follow-up makes a variable of a run's environment replace
1353
+ an inherited one of any case on Windows.
1354
+
1355
+ - **openspec:** Archive the references-declaration-last change ([2dae40f](https://github.com/robotcodedev/robotcode/commit/2dae40f977eec648d6c1448ed00b1c10ecd4c52e))
1356
+
1357
+ Moves the change to the archive and adds its requirements on the declaration
1358
+ after the usages in Find References and on LSP Reference(s) for library
1359
+ keywords and file variables to the main specs workspace-references and
1360
+ intellij-navigation.
1361
+
1362
+ - **openspec:** Archive the namespace-prefix-references change ([46f6791](https://github.com/robotcodedev/robotcode/commit/46f6791e109b6c27f7d052fc375886a664e0a96a))
1363
+
1364
+ Moves the change to the archive and adds its requirements on References on
1365
+ the prefix of a keyword call to the main specs workspace-references and
1366
+ intellij-navigation.
1367
+
1368
+ - **openspec:** Archive the intellij-ctrl-hover-underline change ([9dae59f](https://github.com/robotcodedev/robotcode/commit/9dae59f0820c9cedbee71811b1ad04a1f8e3a463))
1369
+
1370
+ Moves the change to the archive and adds its four requirements on Ctrl+hover,
1371
+ Ctrl+click and the usage searches to the main spec intellij-navigation.
1372
+
1373
+ - **openspec:** Plan searching usages from the name at the caret in PyCharm ([0b2ceda](https://github.com/robotcodedev/robotcode/commit/0b2cedab928f70b3d68fff489e04923d4d00869b))
1374
+
1375
+ Plans J13: Find Usages and Show Usages on a resource import find nothing,
1376
+ because PyCharm searches the import's definition at the start of the
1377
+ resource file. RobotCode's usage target provider then also answers for the
1378
+ resolved element, so both actions search from the name at the caret; this
1379
+ builds on namespace-prefix-references and argument-usage-tokens.
1380
+
1381
+ - **openspec:** Plan three References fixes in the language server ([78f89ff](https://github.com/robotcodedev/robotcode/commit/78f89ff09593a1f4851e5526c4b177d42c8343b0))
1382
+
1383
+ Plans the changes found while fixing Find Usages in PyCharm: the declaration
1384
+ after the usages in Find References (J12), References on the prefix of a
1385
+ keyword call (J14), and parameter tokens for uses of a keyword's arguments
1386
+ on both analysis paths.
1387
+
1388
+ - **openspec:** Plan the New Documentation Viewer command and button ([e606006](https://github.com/robotcodedev/robotcode/commit/e60600613106930a9c97bb3e2bbdc506f85aa0fb))
1389
+
1390
+ The command that opens a new viewer gets a name that says so, its sibling
1391
+ says that it copies the viewer into a new window, and each viewer gets a
1392
+ toolbar button that opens a new viewer in its workspace folder.
1393
+
1394
+ - **openspec:** Archive the vscode-run-terminal change ([d893353](https://github.com/robotcodedev/robotcode/commit/d89335328481013d909ecf16496ad90ba6091cd5))
1395
+
1396
+ Syncs the delta specs into the new main spec vscode-run-terminal, which
1397
+ describes RobotCode's run terminal in VS Code, into vscode-user-guide
1398
+ for the output of a run, and into debugger-termination for a terminate
1399
+ request after the end of a run, and moves the change to the archive.
1400
+
1401
+ - **openspec:** Plan underlining the name under the mouse on Ctrl+hover ([7a637b4](https://github.com/robotcodedev/robotcode/commit/7a637b4b48d292f459eb668a89555376c41aeac7))
1402
+
1403
+ The change `intellij-ctrl-hover-underline` plans that Ctrl+hover in
1404
+ Robot Framework files underlines keywords again and only the name under
1405
+ the mouse, such as `Log` in `BuiltIn.Log`, by letting LSP4IJ's Go to
1406
+ Declaration handler leave the semantic token references to the IDE.
1407
+
1408
+ - **openspec:** Plan RobotCode's own run terminal in VS Code ([9582780](https://github.com/robotcodedev/robotcode/commit/9582780ee8a3cab82e1a7b1e2ec695ea985ed730))
1409
+
1410
+ The change `vscode-run-terminal` plans a new console value
1411
+ `robotcodeTerminal`, the new default, which runs tests and debug
1412
+ sessions in a terminal of RobotCode without a shell: no activation text
1413
+ of the Python extensions reaches the run, the output stays after the
1414
+ run, and the terminal is reused for the next run or closes on a key.
1415
+
1416
+ - **openspec:** Bring intellij-python-interpreter up to date with main ([88c458a](https://github.com/robotcodedev/robotcode/commit/88c458ab037f3943be2d1a930ad670d23782847e))
1417
+
1418
+ The plan now builds on the archived environment check, run configuration, personal settings and settings page changes instead of planning around them, takes the content and source roots of #430 along with the chosen module, including a project whose first module has no roots, lets the start of a run check the configuration's interpreter, turns the remote interpreter requirement into a change of the existing one, and names lsp4ij#1701 as what one server per module waits for.
1419
+
1420
+ - **openspec:** Archive the intellij-usages-title change ([49b00da](https://github.com/robotcodedev/robotcode/commit/49b00dae920614c78636253fd200d22c4f9e8a35))
1421
+
1422
+ Creates the main spec intellij-navigation from the delta spec: Show
1423
+ Usages and Find Usages name the kind of what is searched for in a Robot
1424
+ Framework file and its name as written. The change moves to the archive.
1425
+
1426
+ - **openspec:** Plan a startup phase for environment problems in VS Code ([061a5ef](https://github.com/robotcodedev/robotcode/commit/061a5ef73b54b353d0cbe878717524c181034c07))
1427
+
1428
+ The change `vscode-environment-startup-phase` plans that a problem of a
1429
+ folder's Python environment found in the first 15 seconds after RobotCode
1430
+ first looks at the folder is provisional: no message, no hint in the Testing
1431
+ view and no error in the language status, unless it remains after the
1432
+ startup phase.
1433
+
1434
+ - **openspec:** Plan new Show Usages pictures for intellij-usages-title ([96bd082](https://github.com/robotcodedev/robotcode/commit/96bd08267d9d76c1ad0b4ba345a1b9565b3855ef))
1435
+
1436
+ The change now also takes the two pictures of Show Usages in the PyCharm
1437
+ guide again, which show the old title.
1438
+
1439
+ - **openspec:** Record the implementation of vscode-language-status-severity ([93749af](https://github.com/robotcodedev/robotcode/commit/93749af0c154cd412440262736a012fa66585628))
1440
+
1441
+ All 5 tasks are done. The review added the Robot Framework item to the
1442
+ change; the design records the harness results.
1443
+
1444
+ - **openspec:** Plan naming the kind of a place in Show Usages for Robot files ([160038d](https://github.com/robotcodedev/robotcode/commit/160038dcecce786fbcde99ff2ab26047f6c6b91a))
1445
+
1446
+ The change `intellij-usages-title` plans that Show Usages and Find Usages
1447
+ in Robot Framework files name what is searched for by its kind, such as
1448
+ "Keyword Open Shop As", instead of LSP4IJ's split class name "LSP Usage
1449
+ Triggered Psi Element", with the kind taken from the language server's
1450
+ semantic tokens. It also gives three PSI element types their own debug
1451
+ names.
1452
+
1453
+ - **openspec:** Plan marking only the item with the problem in the language status ([00e1462](https://github.com/robotcodedev/robotcode/commit/00e1462476e42567e140a504518e905864981f94))
1454
+
1455
+ The change `vscode-language-status-severity` plans that the Python item of
1456
+ VS Code's language status is an error only when the interpreter has a
1457
+ problem, so that a missing Robot Framework marks only the Robot Framework
1458
+ item.
1459
+
1460
+ - **openspec:** Archive the intellij-preview-without-server-suggestion change ([8242f17](https://github.com/robotcodedev/robotcode/commit/8242f174343bf442fce4e78ffe22689a6ac85c3f))
1461
+
1462
+ Syncs the delta spec into the main spec intellij-test-results: no
1463
+ suggestion of LSP4IJ to install a language server appears above a
1464
+ preview tab, and a preview tab shows only RobotCode's preview. The
1465
+ change moves to the archive.
1466
+
1467
+ - **openspec:** Archive the documentation-viewer-waits-for-environment change ([14a7fef](https://github.com/robotcodedev/robotcode/commit/14a7fefd9d62e9489cb09db298484fa91278cb7f))
1468
+
1469
+ Syncs the delta spec into the main spec vscode-documentation-viewer, which
1470
+ now describes how a viewer waits for the Python environment of its folder,
1471
+ says that it waits and shows a lasting problem as an error, and follows a
1472
+ change of the folder's interpreter, and moves the change to the archive.
1473
+
1474
+ - **openspec:** Record the implementation of documentation-viewer-waits-for-environment ([430e06b](https://github.com/robotcodedev/robotcode/commit/430e06b59682ec818b7fb8a518f121bcadc8c469))
1475
+
1476
+ All 18 tasks are done. The design records the harness results, the review
1477
+ corrections and the waiting note with the error after 30 seconds.
1478
+
1479
+ - **openspec:** Archive the tests-without-line-numbers change ([be61136](https://github.com/robotcodedev/robotcode/commit/be6113615d0da1a393ef159e01c3c80596b02242))
1480
+
1481
+ Syncs the delta spec into the new main spec test-discovery, which
1482
+ describes what `robotcode discover` reports for tests without a line
1483
+ number and that runs report each test under the ID of its discovery,
1484
+ and moves the change to the archive.
1485
+
1486
+ - **openspec:** Plan keeping LSP4IJ's server suggestion off the preview tab ([262c5df](https://github.com/robotcodedev/robotcode/commit/262c5df709bb30cd6d2948e5b2925acf983b4a9f))
1487
+
1488
+ The change `intellij-preview-without-server-suggestion` plans that the
1489
+ IntelliJ plugin's preview tab of a report or a log gets a binary file
1490
+ type of its own instead of plain text, so that LSP4IJ no longer offers
1491
+ to install the Harper language server above it.
1492
+
1493
+ - **openspec:** Archive the docs-halloween-season and docs-hero-gallery-autoplay changes ([4e27280](https://github.com/robotcodedev/robotcode/commit/4e272802480f9b0eb2b4f5890fa26e9eb44d3e4d))
1494
+
1495
+ Syncs the delta specs into the main specs: documentation-site gets the
1496
+ season pictures in its home page requirement and the gallery that moves
1497
+ on by itself, and the new main spec documentation-site-seasons holds
1498
+ the Halloween season. Both changes move to the archive.
1499
+
1500
+ - **openspec:** Plan the Documentation Viewer waiting for the Python environment ([669d305](https://github.com/robotcodedev/robotcode/commit/669d305d809458e17c4998fe9ccdb2630583664f))
1501
+
1502
+ The change `documentation-viewer-waits-for-environment` plans that a
1503
+ Documentation Viewer generates its page only when RobotCode's check finds
1504
+ the folder's Python environment usable, says why it waits instead of
1505
+ showing an error with Retry, and loads by itself once the environment is
1506
+ usable or its interpreter changes. Until then a history entry shows the
1507
+ page it showed last, so a viewer restored at startup shows its page at once.
1508
+
1509
+ - **openspec:** Archive the test-tree-follows-file-changes change ([05f6b5e](https://github.com/robotcodedev/robotcode/commit/05f6b5e310d94e060880ed224cb2b280fd6428e0))
1510
+
1511
+ Syncs the fourteen requirements of the delta specs into the main specs
1512
+ vscode-test-explorer, intellij-test-discovery and
1513
+ continuous-integration, which now describe how the test tree follows
1514
+ changed files, how the top-level suite and every workspace folder are
1515
+ run, and how the CI tests the VS Code extension, and moves the change
1516
+ to the archive.
1517
+
1518
+ - **openspec:** Check off the CI check of test-tree-follows-file-changes ([4672993](https://github.com/robotcodedev/robotcode/commit/4672993cda3c26a5262d12cacab7983b2ca45ff9))
1519
+
1520
+ Task 1.3 records the two CI runs: the VS Code extension's tests passed
1521
+ with the minimum and the newest VS Code, their logs list each test, and
1522
+ the published test results contain them.
1523
+
1524
+ - **openspec:** Plan discovering tests without a line number ([ca75514](https://github.com/robotcodedev/robotcode/commit/ca75514e3ca3a4213feffc1684b2c5ec9b008078))
1525
+
1526
+ The change `tests-without-line-numbers` plans that `robotcode discover`
1527
+ lists tests and tasks without a line number, as a custom parser or a
1528
+ pre-run modifier creates them, instead of failing, with `0` as the line
1529
+ part of their ID, and that runs report them under the same ID.
1530
+
1531
+ - **openspec:** Plan the home page gallery moving on by itself ([25da205](https://github.com/robotcodedev/robotcode/commit/25da20539097ea3b06132c38a604511253df702f))
1532
+
1533
+ The change `docs-hero-gallery-autoplay` plans letting the gallery next to the title of the home page move on to the next picture every eight seconds with a short fade, pausing while the reader points at it, focuses it or has the enlarged view open, and not at all with reduced motion.
1534
+
1535
+ - **openspec:** Check off the check of pypi-dev-builds ([d9115dd](https://github.com/robotcodedev/robotcode/commit/d9115dd25fea35003657df4830c23050f917405a))
1536
+
1537
+ A manual start published 2.8.0.dev548 of all 12 projects to PyPI, `robotcode` after the others, while `pip install robotcode` still installs the latest release. The next scheduled run found the version on PyPI and uploaded nothing.
1538
+
1539
+ - **openspec:** Plan a Halloween season for the website ([3245173](https://github.com/robotcodedev/robotcode/commit/3245173cce077f5caf8c9a4caf04e50d957290b2))
1540
+
1541
+ The change `docs-halloween-season` plans a Halloween season for robotcode.io from October 24 to November 2, decided in the visitor's browser: the dark theme unless the visitor picked one, a Spooky mode switch in the footer, and on the home page spiders, bats, a peeking ghost, a floating pumpkin with the Robot Framework face, Halloween weather and horror-film sublines; news pages get a lighter version, guides and reference only the theme.
1542
+
1543
+ - **openspec:** Plan following a newer build while waiting for the latest run on main ([459009f](https://github.com/robotcodedev/robotcode/commit/459009fb454a233470aedc2b1a0a13c64159b77e))
1544
+
1545
+ The change `dev-builds-latest-run` now lets the nightly upload follow a newer run that a push to `main` starts while it waits, and publish that run's dev builds instead of the result of the run it waited for first.
1546
+
1547
+ - **openspec:** Plan keeping the test tree in step with changed files ([9ed8510](https://github.com/robotcodedev/robotcode/commit/9ed851057f1b3fbf60d6632115f7d90e8e3d43b7))
1548
+
1549
+ Plans that VS Code's Test Explorer reads single files the way the PyCharm
1550
+ plugin does: one model per folder, the tree built from it, one rule for the
1551
+ triggers and reads queued per file. Both clients pass the top-level suite
1552
+ name when they read a single file. The extension gets tests with VS Code's
1553
+ own test stack, run by npm test, by F5 and by a CI job of its own.
1554
+
879
1555
  - **openspec:** Plan taking every dev build from the latest run on main ([ead99c2](https://github.com/robotcodedev/robotcode/commit/ead99c2773e5146141624e499f108b17f102601e))
880
1556
 
881
1557
  The change `dev-builds-latest-run` lets the nightly upload take the latest run for a push to `main` for all stores, wait for it while it is still running, and publish no dev build when it isn't green, instead of falling back to an older green intermediate state.
@@ -1857,6 +2533,32 @@ All notable changes to this project will be documented in this file. See [conven
1857
2533
 
1858
2534
  Describes discover metadata, the pattern rules of --by-test-metadata and --exclude-by-test-metadata, how several values of one name are written, and the use with plain robot and robot.toml profiles, each marked as needing Robot Framework 7.5.
1859
2535
 
2536
+ - **vscode:** Describe the button for a new Documentation Viewer ([35a20c0](https://github.com/robotcodedev/robotcode/commit/35a20c0ecf37c56934c63ae51d2eaac2d22eca84))
2537
+
2538
+ The guide and the command table use the renamed commands, the guide describes
2539
+ the toolbar button and names VS Code's commands that cannot split or copy a
2540
+ viewer, and the screenshot of the viewer shows the new toolbar.
2541
+
2542
+ - **vscode:** Say when RobotCode reports environment problems at startup ([bdce7ae](https://github.com/robotcodedev/robotcode/commit/bdce7ae93221d704dcd25771b56fc4a22f96cc3e))
2543
+
2544
+ The section on the Python environment says that RobotCode reports a
2545
+ problem it finds in the first 15 seconds after VS Code starts or a folder
2546
+ is added only if it remains, and that the language status shows meanwhile
2547
+ that RobotCode is still checking.
2548
+
2549
+ - **vscode:** Name the environment in the guide as the default setup does ([7561cc4](https://github.com/robotcodedev/robotcode/commit/7561cc4b24843e13643ab331b8bf3438f18ded22))
2550
+
2551
+ The picture of RobotCode's environment message and its alt text name the
2552
+ virtual environment '.venv', as the message does with the Python
2553
+ Environments extension, instead of '.venv (venv)' from the Python
2554
+ extension's API.
2555
+
2556
+ - **vscode:** Describe how the Documentation Viewer waits for the Python environment ([f5c77bb](https://github.com/robotcodedev/robotcode/commit/f5c77bbed20eb82f771bc63d9946258c03bc1e17))
2557
+
2558
+ The guide's paragraph on kept pages says that the viewer waits for a usable
2559
+ Python environment, shows its last page meanwhile, and shows a lasting problem
2560
+ as an error after 30 seconds.
2561
+
1860
2562
  - **vscode:** Correct when completion offers variables and tags ([244e150](https://github.com/robotcodedev/robotcode/commit/244e15007e9faf18ee1823a4107ae2fdac5d7801))
1861
2563
 
1862
2564
  Completion offers variables after `${`, `@{` and `&{` and environment variables after `%{`, and of the tags only the reserved ones such as `robot:skip`.
@@ -1882,6 +2584,42 @@ All notable changes to this project will be documented in this file. See [conven
1882
2584
 
1883
2585
  Adds a VS Code section to the page about browsing documentation, and the installation table now says that `robotcode doc` and the Documentation Viewer do not need Python-Markdown.
1884
2586
 
2587
+ - **website:** Add a page on how to try the dev builds ([a4eb6b7](https://github.com/robotcodedev/robotcode/commit/a4eb6b7eec85dc3a46a994374d5f1a3419719f09))
2588
+
2589
+ The new Getting Started page explains how to switch to the dev builds of the VS Code extension, the PyCharm plugin and the Python packages, with pip or uv, how to recognize them and how to go back to a release. The README links it under Get Involved.
2590
+
2591
+ - **website:** Let the Halloween fog and the Spooky switch move in steps ([75e2040](https://github.com/robotcodedev/robotcode/commit/75e2040147d59eae546619eaedb21b00914b1743))
2592
+
2593
+ The fog drifts and billows in small steps and the floating Spooky
2594
+ switch moves a pixel at a time, so that on a fast screen the browser no
2595
+ longer draws the decorations again at every refresh; on a 145 Hz screen
2596
+ the home page with the hero out of view goes from about half a
2597
+ processor core to about a quarter.
2598
+
2599
+ - **website:** Let the progress bars of the home page demos move in steps ([1a53cd7](https://github.com/robotcodedev/robotcode/commit/1a53cd788887af6597171e706e38f644ba9ffa7b))
2600
+
2601
+ The bar under the active tab of the feature tour and of the agent demo
2602
+ now grows in steps of about two pixels instead of continuously, so the
2603
+ browser no longer draws a new picture at every refresh of the screen
2604
+ while a demo plays; on a 145 Hz screen the agent demo goes from about
2605
+ 18 to about 4 % of a processor core.
2606
+
2607
+ - **website:** Stop the home page from painting the tour's progress bar and the news badge in every frame ([58f4188](https://github.com/robotcodedev/robotcode/commit/58f418897e8d8534142bc6c0467f71d6035b6b30))
2608
+
2609
+ The progress bar of the feature tour now grows by a transform instead of its width, and the badge of a fresh news post pulses five times after the page loads instead of for as long as it is open, so the home page no longer keeps the processor busy while it is shown.
2610
+
2611
+ - **website:** Let blood run down the title of the home page at Halloween ([1d8ee74](https://github.com/robotcodedev/robotcode/commit/1d8ee74a206498bda0a38a86afc699450df20ecf))
2612
+
2613
+ During the Halloween season, while Spooky mode is on, the title of the home page is full of blood: drops gather at the bottom of its letters and fall, and the traces they leave dry darker. With Spooky mode off the title looks as usual.
2614
+
2615
+ - **website:** Let the gallery on the home page move on by itself ([448f75a](https://github.com/robotcodedev/robotcode/commit/448f75a3e30bc1740b5771c09f4af77ab8293585))
2616
+
2617
+ The picture next to the title of the home page now changes by itself every eight seconds with a short fade, so visitors see more of the RobotCode artwork. It stays while you point at it, focus it or look at the enlarged view, and it doesn't move on with reduced motion.
2618
+
2619
+ - **website:** Add a Halloween season to the website ([f6c614c](https://github.com/robotcodedev/robotcode/commit/f6c614ce4ee99d91e2f91f2fc442c3e257d8c0c3))
2620
+
2621
+ From October 20 to November 2, robotcode.io dresses up for Halloween: it starts in the dark theme unless you picked one, the home page shows RobotCode on horror-film posters, and the home page and the news pages get spiders with an egg sac, bats, a peeking ghost, a floating pumpkin, fog, the moon with lightning and thunder, and a music box. Switches next to the pumpkin turn the decorations, the sound and the music off, and `?season=halloween` shows the season at any time.
2622
+
1885
2623
  - **website:** Don't promise the same features in every IDE ([39bb9c7](https://github.com/robotcodedev/robotcode/commit/39bb9c75e7c4917e57f1355e71867102d9a082fd))
1886
2624
 
1887
2625
  The About page and the feature tour on the home page said that VS Code and IntelliJ have the same features because they share a codebase; they share the language server, while tools such as the Documentation Viewer and notebooks exist only in VS Code.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: robotcode
3
- Version: 2.8.0-dev.548
3
+ Version: 2.8.0-dev.670
4
4
  Summary: Command line interface for RobotCode
5
5
  Project-URL: Homepage, https://robotcode.io
6
6
  Project-URL: Donate, https://opencollective.com/robotcode
@@ -34,35 +34,35 @@ Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
34
34
  Classifier: Topic :: Utilities
35
35
  Classifier: Typing :: Typed
36
36
  Requires-Python: >=3.10
37
- Requires-Dist: robotcode-core==2.8.0-dev.548
38
- Requires-Dist: robotcode-plugin==2.8.0-dev.548
39
- Requires-Dist: robotcode-robot==2.8.0-dev.548
37
+ Requires-Dist: robotcode-core==2.8.0-dev.670
38
+ Requires-Dist: robotcode-plugin==2.8.0-dev.670
39
+ Requires-Dist: robotcode-robot==2.8.0-dev.670
40
40
  Provides-Extra: all
41
41
  Requires-Dist: docutils; extra == 'all'
42
42
  Requires-Dist: pyyaml>=5.4; extra == 'all'
43
- Requires-Dist: robotcode-analyze==2.8.0-dev.548; extra == 'all'
44
- Requires-Dist: robotcode-debugger==2.8.0-dev.548; extra == 'all'
45
- Requires-Dist: robotcode-language-server==2.8.0-dev.548; extra == 'all'
46
- Requires-Dist: robotcode-repl-server==2.8.0-dev.548; extra == 'all'
47
- Requires-Dist: robotcode-repl==2.8.0-dev.548; extra == 'all'
48
- Requires-Dist: robotcode-runner==2.8.0-dev.548; extra == 'all'
43
+ Requires-Dist: robotcode-analyze==2.8.0-dev.670; extra == 'all'
44
+ Requires-Dist: robotcode-debugger==2.8.0-dev.670; extra == 'all'
45
+ Requires-Dist: robotcode-language-server==2.8.0-dev.670; extra == 'all'
46
+ Requires-Dist: robotcode-repl-server==2.8.0-dev.670; extra == 'all'
47
+ Requires-Dist: robotcode-repl==2.8.0-dev.670; extra == 'all'
48
+ Requires-Dist: robotcode-runner==2.8.0-dev.670; extra == 'all'
49
49
  Requires-Dist: robotframework-robocop>=6.0.0; extra == 'all'
50
50
  Provides-Extra: analyze
51
- Requires-Dist: robotcode-analyze==2.8.0-dev.548; extra == 'analyze'
51
+ Requires-Dist: robotcode-analyze==2.8.0-dev.670; extra == 'analyze'
52
52
  Provides-Extra: debugger
53
- Requires-Dist: robotcode-debugger==2.8.0-dev.548; extra == 'debugger'
53
+ Requires-Dist: robotcode-debugger==2.8.0-dev.670; extra == 'debugger'
54
54
  Provides-Extra: languageserver
55
- Requires-Dist: robotcode-language-server==2.8.0-dev.548; extra == 'languageserver'
55
+ Requires-Dist: robotcode-language-server==2.8.0-dev.670; extra == 'languageserver'
56
56
  Provides-Extra: lint
57
57
  Requires-Dist: robotframework-robocop>=2.0.0; extra == 'lint'
58
58
  Provides-Extra: repl
59
- Requires-Dist: robotcode-repl==2.8.0-dev.548; extra == 'repl'
59
+ Requires-Dist: robotcode-repl==2.8.0-dev.670; extra == 'repl'
60
60
  Provides-Extra: replserver
61
- Requires-Dist: robotcode-repl-server==2.8.0-dev.548; extra == 'replserver'
61
+ Requires-Dist: robotcode-repl-server==2.8.0-dev.670; extra == 'replserver'
62
62
  Provides-Extra: rest
63
63
  Requires-Dist: docutils; extra == 'rest'
64
64
  Provides-Extra: runner
65
- Requires-Dist: robotcode-runner==2.8.0-dev.548; extra == 'runner'
65
+ Requires-Dist: robotcode-runner==2.8.0-dev.670; extra == 'runner'
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: pyyaml>=5.4; extra == 'yaml'
68
68
  Description-Content-Type: text/markdown
@@ -220,6 +220,7 @@ You don't need to sponsor to help. Every contribution — feedback, code, advoca
220
220
  - Leave a review on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=d-biehl.robotcode) and [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/26216)
221
221
  - Ask questions & help others on [Slack #robotcode](https://slack.robotframework.org/), the [Forum](https://forum.robotframework.org), or [Discussions](https://github.com/robotcodedev/robotcode/discussions)
222
222
  - Report bugs in the [issue tracker](https://github.com/robotcodedev/robotcode/issues)
223
+ - Try the [dev builds](https://robotcode.io/getting-started/dev-builds/) and report what you find
223
224
  - Suggest enhancements or features (issues or [Discussions](https://github.com/robotcodedev/robotcode/discussions))
224
225
  - Share usage patterns & integration ideas in [Discussions](https://github.com/robotcodedev/robotcode/discussions)
225
226
  - Improve tests (edge cases, large suites, multi-root, versions)
@@ -151,6 +151,7 @@ You don't need to sponsor to help. Every contribution — feedback, code, advoca
151
151
  - Leave a review on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=d-biehl.robotcode) and [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/26216)
152
152
  - Ask questions & help others on [Slack #robotcode](https://slack.robotframework.org/), the [Forum](https://forum.robotframework.org), or [Discussions](https://github.com/robotcodedev/robotcode/discussions)
153
153
  - Report bugs in the [issue tracker](https://github.com/robotcodedev/robotcode/issues)
154
+ - Try the [dev builds](https://robotcode.io/getting-started/dev-builds/) and report what you find
154
155
  - Suggest enhancements or features (issues or [Discussions](https://github.com/robotcodedev/robotcode/discussions))
155
156
  - Share usage patterns & integration ideas in [Discussions](https://github.com/robotcodedev/robotcode/discussions)
156
157
  - Improve tests (edge cases, large suites, multi-root, versions)
@@ -49,26 +49,26 @@ classifiers = [
49
49
  "Framework :: Robot Framework :: Tool",
50
50
  ]
51
51
  requires-python = ">=3.10"
52
- dependencies = ["robotcode-core==2.8.0-dev.548", "robotcode-plugin==2.8.0-dev.548", "robotcode-robot==2.8.0-dev.548"]
52
+ dependencies = ["robotcode-core==2.8.0-dev.670", "robotcode-plugin==2.8.0-dev.670", "robotcode-robot==2.8.0-dev.670"]
53
53
  dynamic = ["version"]
54
54
 
55
55
  [project.optional-dependencies]
56
- debugger = ["robotcode-debugger==2.8.0-dev.548"]
57
- languageserver = ["robotcode-language-server==2.8.0-dev.548"]
58
- runner = ["robotcode-runner==2.8.0-dev.548"]
59
- analyze = ["robotcode-analyze==2.8.0-dev.548"]
56
+ debugger = ["robotcode-debugger==2.8.0-dev.670"]
57
+ languageserver = ["robotcode-language-server==2.8.0-dev.670"]
58
+ runner = ["robotcode-runner==2.8.0-dev.670"]
59
+ analyze = ["robotcode-analyze==2.8.0-dev.670"]
60
60
  yaml = ["PyYAML>=5.4"]
61
61
  lint = ["robotframework-robocop>=2.0.0"]
62
62
  rest = ["docutils"]
63
- repl = ["robotcode-repl==2.8.0-dev.548"]
64
- replserver = ["robotcode-repl-server==2.8.0-dev.548"]
63
+ repl = ["robotcode-repl==2.8.0-dev.670"]
64
+ replserver = ["robotcode-repl-server==2.8.0-dev.670"]
65
65
  all = [
66
- "robotcode-debugger==2.8.0-dev.548",
67
- "robotcode-language-server==2.8.0-dev.548",
68
- "robotcode-runner==2.8.0-dev.548",
69
- "robotcode-analyze==2.8.0-dev.548",
70
- "robotcode-repl==2.8.0-dev.548",
71
- "robotcode-repl-server==2.8.0-dev.548",
66
+ "robotcode-debugger==2.8.0-dev.670",
67
+ "robotcode-language-server==2.8.0-dev.670",
68
+ "robotcode-runner==2.8.0-dev.670",
69
+ "robotcode-analyze==2.8.0-dev.670",
70
+ "robotcode-repl==2.8.0-dev.670",
71
+ "robotcode-repl-server==2.8.0-dev.670",
72
72
  "PyYAML>=5.4",
73
73
  "robotframework-robocop>=6.0.0",
74
74
  "docutils"
@@ -0,0 +1 @@
1
+ __version__ = "2.8.0-dev.670"
@@ -1 +0,0 @@
1
- __version__ = "2.8.0-dev.548"