All notable changes to the "vscode-psl" extension will be documented in this file.
- Update the
json5
dependency to 2.2.3 and increment version numbers. Note that this change is similar to 1.12.2, as the 1.13 version is a split from 1.12 for now.
- Corrected highlight for storage modifier keywords in formal parameter rule.
- Further enhancements in Language highlight.
- Fix bugs introduced in Language highlight enhancements.
- Language highlight enhancements.
- Update the
json5
dependency to 2.2.3 and increment version numbers.
- Fix of bug where
Buffer
was not decoded to astring
.
- Update dependencies.
- Implement support for the serialized data format.
- Add snippet for
#PROPERTYDEF
directives. - Add default value for the date in the revision history snippet.
Dependency updates
- Code actions for batches and triggers
- Scope the setting
psl.trailingNewline
to resource
Allow sources to be split across multiple projects with a profile-project.json
. Current functionality is unstable and is
subject to change (versioned 0.0.1
).
{
"version": "0.0.1",
"parentProjects": [
"profile-application",
"profile-framework"
],
"pslSources": [
"dataqwik/procedure/",
"psl/"
],
"fileDefinitionSources": [
"dataqwik/table/"
]
}
This file can be used to configure sources, not only for the current project, but across multiple projects in a vscode workspace.
All fields are optional. In the example above, pslSources
and fileDefinitionSources
are populated with their default
values. The names in the parentProjects
array refer to the names of the vscode workspace themselves. For more about
workspace visit the official documentation for more information.
Other changes include:
- Data Items from PARFID's can now be resolved by Completion/Hover/Go-To
- Data Item Completion now uses lowercase
- Allow messages with length > 16^2 - 2 to be read from MTM
- Take language features out of preview
- Enable GT.M debugging in the status bar
- Added default snippet for pslmain() (thanks @mischareitsma)
- Code coverage visualization
- Update documentation
Adds two new custom menu items "Run Test" and "Run Test (with Coverage)". The custom logic must be implemented in your Profile instance. Then it can be called by adding this configuration to your settings.json
:
"psl.customTasks": [
{
"command": "runCoverage",
"mrpcID": "^ZMRPC121",
"request": "PSLRUNTESTC"
},
{
"command": "runTest",
"mrpcID": "^ZMRPC121",
"request": "PSLRUNTEST"
}
]
The command
names are fixed, but the mrpcID
and request
fields can match your implementation.
Other changes include:
- Adds rule for "PropertyIsDuplicate" from psl-lint (thanks @Thirurakshan)
- Properly scope preview configuration to resource
- Change batch section icon
- Fix code quality to only lint when config file is present
- Do not change focus to output channel after writing
- Adds fields
serverType
andencoding
to environments.json (thanks @joelgomes85 for opening the issue)
- public declarations that start with v are now only diagnosed at INFO level
- Adds rule for "TblColDocumentation" from psl-lint (thanks @ManikandanKKA)
- Add a setting to check trailing newline after a "Get" or "Refresh".
- Adds a command to render markdown documentation of a PSL document when a server is present.
- Adds rule "PropertyIsDummy" from psl-lint (thanks @kewtree1408)
- Fixed a bug in codeQuality that caused major workbench performance degredation.
- TwoEmptyLines psl-lint rule (thanks @RajkumarVelusamy)
- MultiLineDeclare psl-lint rule (thanks @Thirurakshan)
- Automated deployments (thanks @morganing)
- Improved error messages when attempting to test compile an invalid file (thanks @cjprieb)
- Updated snippets (thanks @cjprieb)
- Improved PSL statement parsing
- Fixed a bug that would break do statement completion
- Fixed syntax highlighting to no longer highlight fields with keyword identifiers (thanks @cjprieb)
- Made the OPEN section header syntax highlighting less strict to allow multiple spaces after the OPEN identifier (thanks @cjprieb)
Added new rule RuntimeStart
that checks if variables declared outside of a TP Fence are referenced from within.
Linting in PSL now uses a configuration file. By default the setting "psl.lint"
is now "config"
. Other options are "all"
or "none"
.
A file must be included in order to be checked. If it is then excluded, it will not be checked. Here is an example layout:
{
"version": 1,
"include": {
"Z*": ["*"],
"*.psl": ["*"],
"*": ["TodoInfo"]
},
"exclude": {}
}
This will lint files starting with a Z and all .psl files. All rules will be applied to these files. All files will have the TodoInfo rule applied to them.
These are the current rules:
- TodoInfo
- MemberCamelCase
- MemberLength
- MemberStartsWithV
- MethodDocumentation
- MethodSeparator
- MethodParametersOnNewLine
- PropertyLiteralCase
Additionally, this version also introduces Completion Items with Suggestions as another preview feature for the PSL language.
Introduced toggle to enable preview features ("psl.previewFeatures" : true
). Restart after configuring to enable.
Preview features include:
- Hover and go-to definitions.
- Actions for missing separator and documentation on methods.
Implementation of the psl-lint code quality checker. Enable it by adding the setting "psl.lint" : true
to your settings.json.
Fix a small bug where the Configure Environments button does not update properly.
Promote to 1.0.0 stable. Introduces language support.
- Tokenizer and parser
- Data item support
- Outlines for PSL entities
- Record completion items
- Fixes to environment configuration interface
Initial publication.
- Get/Refresh, Send, Run, Test Compile, and Compile and Link.
- Multi-environment configurations
- Terminal support
- PSL and table item syntax coloring