Releases: jan-dolejsi/vscode-pddl
v2.22 planner trouble-shooting
- file explorer multi-select planner invocation
- removed deprecated planner configuration
- refactored planning service clients to a separate npm package
LongRunningPlannerProvider
base class for planning services- planner troubleshooting options
- updated jsonc parser
- v2.22
- LPG default option '-n 0'
PDDL Formatter
2.21.0
PDDL Formatter
Right-click on PDDL document and you will see two more options: Format Document and Format Selection.
It re-formats the white space to enhance readability of the domain/problem.
The formatter does not modify most of your line breaks, but modifies most of the indentation.
Even more helpful is the on-type formatter, which automatically suggests indentation when you press Enter in the document.
The on-type formatter must however be first enabled using this setting:
"editor.formatOnType": true
You can selectively enable the on-type formatting just for PDDL documents:
"[pddl]": {
"editor.formatOnType": true
}
The above configuration can be now easily inserted from the PDDL: Overview Page.
The Document and Document Selection formatter (along with the separately enabled on-type formatter) can be disabled (in case of clash with another extension) using the pddl.formatter
setting.
This was one of the oldest standing feature request is now addressed.
This work was started by our intern more than 2 years ago, but I only had time to finish it now - thanks to C-19 isolation.
v2.20 faster and customizable plan visualization
2.20.0 - New and customizable Plan Visualization
New faster plan visualization component with custom domain-specific plan visualization
The plan visualization component was extracted to a separate NPM package pddl-gantt.
This has two drivers:
- ability to replace the plan visualization in this extension
- ability to use this plan visualization as a plugin to editor.planning.domains
- faster search debugger view, which now hosts the same component
The new version is also going to display the plan faster.
What made the old one slow was the upfront evaluation of the line plots.
Now the line plots are evaluated lazily - only when they are scrolled into the view.
To study the files used in the above example, see blocksworld.planviz.json and blocksWorldViz.js.
To see all the options for plan visualization as HTML/DOM/SVG, see the function signatures here: CustomVisualization.ts.
More usable plan preview and planner invocation via editor title icons
The planner invocation is now also available in the editor title context menu (by right-clicking on the editor tab of the domain/problem file).
Plan preview command is available in the editor title bar when a .plan file is focussed.
Planner configuration and addition available from planner switch drop down
While switching between planners (using the button in the status bar),
you may realize that the planner you want to switch to needs also a tweak in its configuration.
The only way to change the configuration is to go to the Overview Page (or edit it directly in the settings.json
file)
but none of those choices are at hand.
It is now possible to jump to the Overview Page and configure the planner right from the drop down that lets you select a planner.
Custom domain-specific plan/state visualization
Evolved the domain-specific plan/state visualization, which can be specified using the customVisualization
(originally planVisualizer
) property in the <<domain>>.planviz.json
config file.
Fixes
For custom planner syntax is specified (in one of the user/workspace settings.json
files) the syntax validation is now more permissive.
Currently it flagged many valid planner syntaxes with a red squiggly line.
Example of syntax for LPG planner:
{
"kind": "lpg-td",
"canConfigure": true,
"path": "c:\\path\\lpg-td-1.0.exe",
"syntax": "$(planner) -o $(domain) -f $(problem) $(options)",
"title": "LPG-td"
},
No longer attempting to display the total-time
metric on the line-plot.
Engineering work
- Dependencies updated to Node 12.14.1.
- Updated to latest VAL binaries (build 55).
v2.19.0 ICAPS 2020 face lift
[2.19.0] ICAPS 2020 face lift (while attending the late night conference sessions)
Features
The PDDL: Configure planner output target... command and the PDDL Overview Screen already helped configuring how the planner output is consumed. The three options are:
- Output window - Planner output is displayed in the VS Code Output Window Planner output.
- Terminal - Planner is executed in a terminal window. Plan is not displayed visually. Use this to interact with the planner.
- Search debugger - Same as the Output window option, but the output window and resulting plan are not revealed in order to keep the Search debugger in the forefront.
The weak spot was that there was no apparent indication in VS Code where is the planner output going to go. Now there is.
The status bar now shows both the planner selector and right next to it, the output target selector.
Fixes
- Command PDDL: Preview plan accessible from the right-click menu on any .plan file in the editor now shows the plan even if the problem and domain is not associate with it.
- Planning.domains session synchronization (via the source control panel) does not show the useless commit message text input component.
Engineering work
- Codicon icon font is used in the custom views wherever possible
- Minimum requirement VS Code 1.45, update to Typescript 4 and Mocha 8
- tighter security applied to custom views. Javascripts are secured by a one time random nonce, etc...
2.18.5
- Added Java executable jar planner configuration kind.
2.18.4
- Added visualization of action (with numeric effects) iterations in relaxed plan.
2.18.3
- Added support out-of-the-box planner options.
- Planner executable selection usability improved on Windows - by default the file-open dialog filters all of .exe, .bat and .cmd.
- Fixed auto-completion for PDDL types, constants, predicates and functions, where a
(and )
block was created in error.
2.18.2
- Fixed visualization of multiple improving plans. Most of the times only the first plan would show and the improving plans would be ignored by the visualization. This was due to a race condition in the extension code..
Release 2.18.0
2.18.0
Features
Line plots for multiple metric expressions
If your planner supports multiple (:metric ...)
expressions in the problem file (VAL actually does),
you can use it to get some ad-hoc expressions displayed on a line plot below the plan.
This is very useful, to debug numerically-rich domains.
Other improvements
- Auto completion for (:constraints ) includes the nested (and ), which I always forget
- Val std-error stream is also now presented in the Problems pane.
- Support for DAY (and WEEK) time resolution in plans.
- To minimize the refresh of plan visualization, the plans are no longer re-painted when upon the planner exit.
Fixes
- Fixed bug, where the test results/outcomes were not being displayed on the tree, if the tree was first-time-expanded during the execution of the tests.
- Fixed regression on the visual search debugger related to selection of nodes on the tree.
- Fixed response to failing plan validation. Instead of opening the Problems pane, we open the Output pane, where the detailed VAL output is printed.
- Small fix for the Overview Page, when it is closed before the current configuration is posted to it.
- Async service call handles multiple plans and xml plan format
- Fixed bug that caused the extension to hang in an endless loop, while resolving a PDDL symbol references (while hover-over)
- Step up to target ES2019
Switching between multiple planners
[2.17.0]
Planner switching
Support for multiple planners, extensibility (other extensions can now inject planner providers) and easy switching between them either
using the PDDL: Select planner command, Ctrl+Alt+P or via the status bar item.
Previous planner configuration settings (pddlPlanner.executableOrService
and pddlPlanner.executableOptions
) are now deprecated
and the extension automatically migrates them to pddl.planners
and pddl.selectedPlanner
. The migration is supported for all places,
where the configuration settings are stored in VS Code: the User settings, Workspace and WorkspaceFolder settings.
Setting pddl.showPlannerInStatusBar
may be used to hide the planner selector in the status bar (if you only ever use one planner).
The original command PDDL: Configure planner changed behavior. It now triggers re-configuration of the currently selected planner.
Other fixes
- Planner output target, parser and validator configuration on Overview Page now sensitive to workspace folder selection
- Refactored the
pddl-workspace
(API for other extensions to inject their custom PDDL functionality) to usevscode-uri
form of file Uri rather than string. - Overview page does no longer show fake (design-time) content in case something goes wrong during initialization (this was rather confusing)
Upgrades and CI
- Planning Domain Session generation email sending is repaired. VS Code changed behavior of the
env.openExternal(Uri)
API and prevented it from openingmailto:
URLs. - Updated to Typescript 3.7.3
- Bulk replaced Typescript
||
with??
operator where appropriate (i.e. when returning default numeric or more generally non-boolean values). - Simplified code by optional chaining using the
.?
Elvis operator.
- Bulk replaced Typescript
- More Typescript strict semantic checking clean-up
- GitHub Actions used for CI
[2.15.3] Bug fixes
[2.15.3] Bug fixes
- Fixed generated problem file/tab name for the pre-parse preview
- Support for spaces in problem template pre-process command-line
- Demoted Jinja2 errors to parsing problems make it possible to edit the files
- Configuration selector menu shows current value
- Introduced configuration to disable the model hierarchy decorator (for perf reasons)
- Added PDDL3.1
undefined
to syntax highlighting - To address the Issue #49 confusion why the search debugger is not displaying anything, when a planning service is called, the extension will now show a warning message that the search debugger config switch is being ignored.
- Removed tips that were not effective at teaching how to use the more hidden features Issue #47 as suggested and fixed by @boramalper
[2.15.2] Predicate and function references
[2.15.2] Predicate and function references
- predicate/function references in hover and decorations (image needed)
- async planner service output parsing to support more than JSON
- async planner service ptest support for local configuration.json file
- vis-network upgraded to v6.4.4
- fix for stricter Webview content security policy that came with VS Code 1.40.2
- fix for domain type hierarchy view that mishandled 0 index as undefined and missed an edge
- initial state visualization: added unparametrised functions/predicates, added asymmetric predicates/functions to the relationship graph.
- search debugger search tree pans the network view to keep the selected node in the view.
- fixed the bulk renaming of predicates/functions that did not propagate to problem files.
- fixed issue in object hierarchy graphic that was showing deleted objects
- filtering workspace events to avoid event bursts
Fixes and updates
- upgrade to vscode 1.40
- upgrade to TypeScript 3.7.2
- clean-up
- fix for type hierarchy parsing that miss the " - object"
- moving views to a dedicated 'views' folder
- more robust action/variable parameter parsing
- eagerly using the Elvis operator
- constraint partial order view
- network/graph settings UI
- improved view icons
- types vs objects visualized in different color per request from Gilles
- Document symbols for problem files
- Domain processes and events are included into document symbols
- Improved parsing of large domains by processing the parser output incrementally
- Removed some 15MB from the extension package by reviewing the package content
- New plan preview menu with more options including preview width dimension.
- New location for the VAL binaries download under VS Code extension global storage path. The binaries now survive extension upgrade. Terminal window is open on linux to suggest the user to chmod the binaries.