Only this pageAll pages
Powered by GitBook
1 of 12

PowerOn Pro

Loading...

Loading...

Loading...

Loading...

Links

How To's

Loading...

Resources

Loading...

Loading...

Loading...

Loading...

Introduction

PowerOn Pro is a Visual Studio Code Extension created to give developers all of the tools they'd need to efficiently write, run, and debug PowerOn code for the Jack Henry™ credit union core system, Symitar.

Resources

  • Jump right in to the Quickstart

  • Discover what's possible with

  • Check out our on Discord

  • Learn about our

Key concepts

PowerOn

PowerOn is a procedural language which provides a direct interface to the Symitar database. It offers record accessors which map directly to the Symitar Record Structure as well as some in-built utility functions to serve as tools when constructing a PowerOn specfile.

You can read more about PowerOn on the .

Known Issues

See what others have reported and what we have in the queue to get fixed.

This list is maintained in a best effort fashion and may not reflect all known issues.

Files disappear during Remote Sym synchronization

If you've set up your Remote Syms and are attempting to synchronize but the files and directories appear and disappear or just don't seem to appear at all, this may have to do with the fact that your WSL environment doesn't have write access to the mounted path you're using for the setting.

PowerOn Pro Capabilities
Libum Community
privacy policy
Jack Henry eDocs
Updating the wsl.conf

Some users have shown resolved this by updating the wsl.conf in their WSL environment to include the following:

  • uid - comes from running id -u in the WSL environment

  • gid - comes from running id -g in the WSL environment

After making the change, you will need to restart the WSL environment which can be done by running wsl --shutdown and wsl to start it back up again.

Permission Denied

If you're seeing any sort of Permission Denied issue in logs or bubbled up through the notifications, this most likely has to do with you missing the SYM### group for the Sym you're pointed to for your AIX user.

Checking your groups

First determine whether or not you have the right Symitar group for the Sym you're trying to use.

  1. SSH into the Symitar host

  1. Run the groups command from the $ prompt

From here, you may be missing the SYM### which is what's causing the permission https://www.jackhenry.com/denied failure when we try to write to a subdirectory within the Sym. To update your groups, check out the next section.

Updating your groups

If you are indeed missing the target Sym group, you'll need to update it which will require elevated permissions. If you're on-premise, su or root should do but if you're with a data provider like EASE, Synergent, or MDT, you will likely need to reach out to them to perform the change.

  1. Update using usermod

Be sure to check to make sure it was sucessful before retrying anything in PowerOn Pro.

Want to report a bug? Please let us know by giving us a shout in the #poweron-pro channel on our Discord or an email at [email protected].

Local Symitar Path
[automount]
enabled = true
options = "metadata,umask=22,fmask=11,uid=<your_uid>,gid=<your_gid>
# the '-t' flag assigns you a pseudo terminal
ssh <aix_user>@<aix_host> -t '/usr/bin/ksh'
$ groups
staff SYM627
# Note: <target_sym> will be the SYM### you're trying to connect to
usermod -a -G <target_sym> <aix_user>

Note Even with an HTTPs connection to Symitar we still leverage SSH for some utility (e.g. file deletions, rename, etc.) and will require these groups until we migrate those remaining functions. If you're having this issue and using the command, please see the to prevent the build up of the temporary PowerOn files.

Quickstart

Get up and running with PowerOn Pro.

PowerOn Pro brings a complete language server, direct integration to Symitar, and an incredible UX to level up your credit union's development toolkit through Visual Studio Code.

More of a TL;DR developer? Feel free to jump down to the section where we cover the "essentials" for getting up and running.

This quickstart is designed to help you get your first Symitar connection created in the PowerOn Pro extension. Through this quickstart, you will learn:

  • How to get PowerOn Pro installed

  • Overview of some of the basic concepts of PowerOn Pro

  • How to use a Remote Sym

If you run into any challenges or have questions getting started, please join our on Discord.

Installing PowerOn Pro

There are two methods for installing the PowerOn Pro extension.

  1. Using the install link on the Visual Studio Marketplace (ref. )

  2. Selecting the Extensions button ( ) in VS Code and searching for "poweron pro"

Getting connected to Symitar

Start by clicking the PowerOn Pro logo ( ) on the bottom left of the VS Code status bar. This will launch the PowerOn Pro menu for you to be able to manage your connections.

Next, select "Click to manage connections..."

Select "Add new Connection +" followed by either "SSH" or "HTTPs" depending on your connection preference and capability of your Symitar host.

Required input (SSH)

This provides a brief overview of each input box you'll receive while creating an SSH connection.

Field
Description
Example

Once you've gone through the prompts, you should expect to see ( ) in the status bar of VS Code (bottom left). Anything different means you may have had an issue connecting or have only be able to establish a partial connection.

Required input (HTTPs)

Please refer to the Required input (SSH) for the context on the majority of the required inputs as they're nearly identical with the exception of the following:

Field
Description
Example

Setting up a Remote Sym

From the activity bar (on the left-hand side), select the Symitar Explorer button ( ) and if you've already followed as well as the required dependencies installed on your machine, you should see the "Open Remote Sym" in the view.

Select "Open Remote Sym" and you should expect to see a menu giving you a selection from available Symitar connections.

After selecting the preferred connection, you will find a list of available Syms (based on the individual connections you've created) as a menu as well.

Selecting a Remote Sym here will automatically do the following:

  1. Create a new directory ( /<symitarHostname>/<symNumber> ) using the configured Local Symitar Path as the root

  2. Update the VS Code workspace at that local folder

  3. Begin synchronizing the configured directories (e.g. /HELPFILES, /LETTERSPECS

TL;DR

All of the available commands within PowerOn Pro are listed on the PowerOn Pro Commands page and can also be listed by opening up the Command Palette (Ctrl + Shift + P) and typing "PowerOn Pro".

  • To create a connection (SSH or HTTPs), use the Manage Symitar Connections command

  • If you want to open a Remote Sym you'll need first set a root path in the setting as well as have both rsync and sshpass utilities via WSL (ref. )

Commands

Know what commands are available and exactly what they do.

PowerOn Pro comes equipped with several built-in VS Code commands this page gives the context for each one.

PowerOn Pro Menu

No matter what workspace you have opened, you can always click on the PowerOn Pro logo in the status bar () to launch the menu for the most common commands.

The PowerOn Pro menu launched through VS Code status bar.

Commands

Deploy and Install PowerOn...

Deploys the target PowerOn to the active Symitar connection and installs it for use. It's also accessible through the explorer context menu for Remote Syms and as a button ( ) in the active editor title (on the top right).

Deploy Symitar File...

Deploys the target file (, , , or ) to the active Symitar connection. It's also accessible through the explorer context menu for Remote Syms and as a button ( ) in the active editor title (on the top right).

Download Symitar File...

Downloads the target file (, , , or ) from the active Symitar connection. It's also accessible through the explorer context menu for Remote Syms and as a button ( ) in the active editor title (on the top right).

Get Latest Report by Title...

Fetches the latest report by title (prompted or parsed from PowerOn in the active editor) from the active Symitar connection.

Get Report by Sequence...

Fetches a report by their sequence number from the active Symitar connection.

Manage Symitar Connections

Opens a menu where you can switch to and add new Symitar connections.

Open Logs

Opens the PowerOn Pro output which displays the extension logs for debugging and general insight.

Open Remote Sym

Opens a menu where you can go through the prompts for selecting a configured Remote Sym.

Run Batch PowerOn...

Executes the batch PowerOn in the active editor. It's also accessible through the explorer context menu for Remote Syms and as a button ( ) in the active editor title (on the top right).

Synchronize Remote Sym

Opens a menu for selecting a Remote Sym to synchronize.

Validate PowerOn...

Validates the PowerOn the active editor. It's also accessible through the explorer context menu for Remote Syms and as a button ( ) in the active editor title (on the top right).

Setting up Rsync on Windows

At the time of writing this how-to, to use the Symitar Explorer - Remote Syms feature we require the use of common Unix utility called rsync to manage the local directories for each Sym which we refer to as "semi-virtual" workspaces.

Looking for additional context into the design decision? Providing rich language support for a third-party language like PowerOn requires something called the . Unfortunately, VS Code doesn't currently support LSP over "virtual workspaces" () which is the ideal design choice to bridge the gap between your local workstation and the Symitar host - forcing us to find an alternative. That alternative, was simply us managing a copy of the select remote directories you'd like for each Sym on your local machine and keeping them up to date using, you guessed it, rsync.

Getting started

Now, we're aware that most of the Symitar developers out there are on a Windows workstation and rsync isn't something that's natively available. Sure there's technically a way to get it running using Windows binaries but fortunately for us Microsoft gave us the ability to install a Linux distribution of our choosing through something called Windows Subsystem for Linux (WSL).

Already have WSL working on your machine? Feel free to skip down to if you already have a Linux distribution created via WSL or if you're comfortable with handling the deps yourself.

Installing WSL

We recommend you follow the latest installation guide, , by Microsoft. The distribution you choose shouldn't matter as long as it comes with rsync already installed.

Installing SSHPass

In order to not prompt you 1,000 times while we manage the synchronization between your Remote Sym and local directory, we use another popular utility called . The following steps walk you thought how to set this up on Ubuntu.

Update & install via APT

Using , make sure your sytem has been updated with the lastet packages via the following commands:

  • First make sure you're in your wsl instance:

  • Next, from the $ prompt, go ahead and update your apt packages:

  • After typing in your Ubutu user password, you should see something like the following:

  • Finally run sudo apt install sshpass (if you've already installed, the output will look similar to the following)

Verifying the Remote Sym dependencies

After installation or if you have an existing WSL distribution you're working with, here are the simple commands to check if you meet the dependencies.

Is Rsync installed?

Run which rsync to confirm it exists in your /bin directory.

Is SSHPass installed?

Run which sshpass to confirm it exists in your /bin directory.

Help & Feedback

We're here for any questions or technical difficulties you might have!

Company

Libum was founded in 2020 by two devs who ❤️ the credit union community. We are a hyper-focused and talented team with breadth and depths of expertise in bringing first of its kind, trailblazing solutions to credit unions of all shapes and sizes.

Want to know more about us? Give our page a read to discover how we got started and what we've been up to in our careers. For personal messages from our team, be sure to check out our as well!

Contact

Want to submit Feedback?

Do you have a feature you'd like to see within PowerOn Pro? Well, we have a place just for that - head on over to our portal to vote on existing posts, or create a new post for that feature you really want or bug that needs to be squashed. Post your feature or finding and receive realtime updates as to where it is on our roadmap 🚀

Validate PowerOn
Offline Validation setting
Install WSL
sshpass
Advanced Packaging Tool (APT)
Language Server Protocol (LSP)
Issue #1264
Verifying the Remote Sym dependencies
Running the wsl command from a PowerShell prompt in Windows 11.
Running the sudo apt update command within a WSL Ubuntu instance.
Output after running sudo apt update on WSL Ubuntu instance.
Running sudo apt install sshpass on WSL Ubuntu instance.
Running which rsync on a WSL Ubuntu instance.
Running which sshpass on a WSL Ubuntu instance.
on-demand
Data
Help
Letter
PowerOn
Data
Help
Letter
PowerOn
The first VS Code prompt for the Deploy Symitar File command.
The second VS Code prompt for Deploy Symitar File (PowerOn) command.
The first VS Code prompt for the Download Symitar File PowerOn Pro command.
The second VS Code prompt for Download Symitar File PowerOn Pro command.
The VS Code prompt for the Get Latest Report by Title PowerOn Pro command.
The VS Code prompt for the Get Report by Sequence PowerOn Pro command.
The VS Code menu for the Manage Symitar Connections PowerOn Pro command.
The PowerOn Pro logs shows as a VS Code output channel.
The VS Code menu for the Open Remote Sym command in PowerOn Pro.
The selector for a Remote Sym in the Open Remote Sym command.
The VS Code menu for Synchronize Remote Sym command in PowerOn Pro.
Image that displays a connected Sym and CLI user for Symitar.
Image which displays the PowerOn Pro menu launched through the status bar.

Your password for the AIX / Symitar host

hunter2

Sym Number

The directory (aka Sym) number for your connection

627

Symitar User Number

Your "Symitar Quest" user number (just the number)

1995

Symitar User Password

Your "Symitar Quest" password (just the password)

2dfKQYR!TeXJwe

, or
/REPWRITERSPECS
)

Symitar Hostname

The endpoint by which you connect to the Symitar host

93.455.43.232 or symitar

Symitar Username

Your username for the AIX / Symitar host

libum

Symitar Application Server Port

The port which your SymAppServer communicates over. This is typically 42 + symNumber unless you're running at the SYSTEM level. Read more on eDocs.

42627

What's the difference between SSH and HTTPs? In the context of a Symitar connection, SSH uses what we refer to as the Command Line Interface (CLI) over the SSH protocol (aka Symulate or Episys Text Mode). This is nifty utility but unfortunately is explicitly disabled for some credit unions and can sometimes be unstable. Additionally, we aren't sure how much longer it will around.

For a connection over HTTPs, an API over the Symitar Application Server is used to make direct calls to the Symitar host. This is a much more stable design pattern and should generally be available to every up-to-date credit union.

Having trouble connecting? For any consistent connection issues or even general questions, feel free to let us know on Discord or by emailing us at [email protected].

Really quick... Before you get started, you will to complete 1) Setting up Rsync on Windows - this is required in order to efficiently manage a mirror copy of your remote Sym locally (so we can access all of VS Code's APIs) 2) Set a root path the Local Symitar Path setting - this will act as the location to store all of your Remote Sym folders for PowerOn Pro to manage.

Appreciate File Icon theming? We've created a custom File Icon theme for VS Code (extends the default vs-seti icons) that will turn this: into this: Just open up the Command Palette (Ctrl + Shift + P) and type "File Icon Theme" and select to enable it.

Libum Community
PowerOn Pro
Getting connected to Symitar
Local Symitar Path
Setting up Rsync on Windows
TL;DR
The PowerOn Pro extension via Marketplace in VS Code.
Main menu for PowerOn Pro.
Manage Symitar Connections menu in PowerOn Pro.
Remote Syms view within Symitar Explorer activity panel.
Open Remote Sym menu with a single available Symitar connection.
List of available Remote Sym connections in the Open Remote Sym menu.

Symitar Password

Want to chat with the Libum team? Join our Libum Community server on Discord and chat with our engineers to answer any burning questions you may have!

Co-Founder:

Email:

Discord: @dyylaaaannnnn

Co-Founder:

Email:

Discord: @nguyendon

Team: Development

Email:

Team: Sales

Email:

Team: Operations

Email:

Feedback
About
blog

Changelog

Keep track of changes to PowerOn Pro. This changelog is maintained in a best effort fashion and may not reflect all changes being made.

v1.9.6

  • Fix online PowerOn validation with same-directory local #INCLUDE files after companion include validation changes

v1.9.5

  • Delegate offline include validation to the shared Symitar library

  • Fix validation diagnostics for errors in local #INCLUDE files

  • Fail fast when Symitar hosts are unreachable

v1.9.4

  • Fix PowerOn syntax coloring and literal typing for dialog functions and SYSSYMDIRECTORY

  • Fix FMPERFORM diagnostics for parent subrecord paths

  • Improve FMPERFORM completions for parent subrecord paths

v1.9.3

  • Correct validation specfile variable (@VALIDATE*) data types in the analyzer

  • Fix include-file diagnostics leaking onto the main file when an include path cannot be resolved

  • Fix inline comments not being highlighted inside multi-line FOR ... WITH and SORT

v1.9.2

  • Add completions and hovers for the NONACCTNAME record

  • Add single-click preview and double-click pinning for reports opened from the sidebar

  • Fix duplicate entries in the Tasks panel for git diff and history views

v1.9.1

  • Fix type inference for predefined variables such as @RGUSERCHR* and @RGANSTEXT

  • Correct SymConnect and MemberConnect spec variable data types in the analyzer

  • Improve FMPERFORM parser recovery while typing incomplete SET statements

v1.9.0

  • Add analyzer-driven semantic highlighting for variables, records, fields, procedures, constants, and literals

  • Add N references CodeLens above defined variables and procedures

  • Add diagnostics for constant reassignment, expression validation, division by zero, dead branches, and non-exhaustive conditional paths

v1.8.0

  • Add the Libum Semantic Analyzer for PowerOn 🚀

  • Add #INCLUDE file diagnostic routing to parent specfiles

  • Add GETFIELD*, GETDATA*, and VALIDATEFIELDSET

v1.7.0

  • Add native Reports (Preview) alternative to Print Control 🔥

  • Add LOAN RATECHANGE and CTR BRANCH database records to language server

  • Fix burst SSH worker requests stability issues

v1.6.6

  • Add support for CHECKORDER record to language server

  • Add hovers for records & improve inline fields

  • Fix issue where inputs were triggered incorrectly on PowerOn execution

v1.6.5

  • Add powerondemand snippet

  • Add New PowerOn File... and New PowerOn Demand File... context commands

  • Fix issue where Untitled documents couldn't use snippets

v1.6.4

  • Add rename symbol for defined variables and procedures

  • Add unique key (for <record> with) completions

  • Cleanup functions, keywords, and variables camelCasing

v1.6.3

  • Add a useTabs formatting option

  • Add a formatOnSave formatting option

  • Add retries for batch execution polling on HTTPs

v1.6.2

  • Add alignLogicalOperators to vertically align operators

  • Add expandParentheses to place ( and ) on their own line

v1.6.0

  • Add PowerOn Formatter (Experimental)

  • Fix issue with Division and Do/End colorizers

  • Fix issue where invalid User/Password on HTTPs validate wasn't captured

  • Fix issue where PROCEDURE snippet was malformed

v1.5.11

  • Fix issue where document references use Remote Sym first

  • Fix issue where #INCLUDE files weren't being replaced for Offline Validation

v1.5.10

  • Fix issue where #INCLUDES were spawning new SFTP channels

  • Fix issue where validation diagnostics weren't updated for HTTPS

  • Fix issue where divisions & system variables were tokenized in comments/strings

v1.5.9

  • Add verbose client connector debug logs

  • Fix issue where Remote Syms would deploy on implicit save with commands

  • Fix issue where invalid PowerOns would appear to install successfully

v1.5.7

  • Syntax highlighting hotfixes

v1.5.6

  • Add function parameter descriptions

  • Add completions to function parameter enumerations

  • Add return types to function hovers

  • Fix issue where PowerOn tokens in strings/comments would break divisions

v1.5.5

  • Fix issue where snippets weren't included in completions

v1.5.4

  • Add new command Clone Sym Directory

  • Add new command Compare with another Sym

v1.5.3

  • Fix issue where Windows wasn't removing Remote Syms properly

  • Increase frequency for Remote Sym download progress logs

v1.5.2

  • Add support for SFTP to Remote Sym (WSL no longer required)

  • Add update command for Remote Sym

v1.5.1

  • Patch CSP for Webviews

v1.5.0

  • Add dynamic download commands for Remote Sym workspaces

  • Add file association setting for language flexibility

  • Improve error handling across extension

  • Lazy-loading for SSH workers to prevent AIX user lockout

v1.4.9

  • Add reset for force disconnect on every Symitar action

  • Add support for custom #INCLUDE paths

  • Add #INCLUDE file for deployments during validation

  • Fix #INCLUDE deploy clobbering

v1.4.8

  • Add a setting for force disconnection after 'n' hours

  • Add custom .PRO and .DEF completions for #INCLUDE files

  • Fix document references for #INCLUDE files in subdirectories

  • Move define variable diagnostics to Free version

v1.4.7

  • Add remote script execution timeout and PID cleanup

  • Fix issue where validation from #INCLUDE file appears in primary PowerOn

  • Fix issue with terminated batch reports for HTTPs connector

  • Skip diagnostics check for directories that don't exist

v1.4.6

  • Add new file diff check between local directory and Sym

  • Fix autocomplete issue with THEN keyword

  • Fix Symitar command error handling

v1.4.5

  • Fix definition links for #INCLUDE files and procedures

  • Fix subfolder file deployments

v1.4.4

  • Increase SSH fetch report timeout to max 60 mins

v1.4.3

  • Fix pattern issue with FMPerform

v1.4.2

  • Add a new snippet for PROCEDURE

  • Update order of snippets in autocompletions to be first

v1.4.1

  • Fix autocomplete issue with ELSE keyword

  • Fix issue with warning expiration pattern

  • Prevent autocomplete from rendering on initial spaces

v1.4.0

  • Add auto-selection for PowerOn file type on deploy & install

  • Add remote file listing for downloads

  • Add batch report cache for in-editor viewer

  • Fix issue where problems wouldn't clear on document close

v1.3.0

  • Add notifications for batch completions

  • Add multi-output support for batch execution on HTTPs

  • Fix regression for multi-directory deployments

v1.2.1

  • Cleanup DO and END highlighting

  • Fix unnecessary UNTIL term in snippets

v1.2.0

  • Add DO and END block matching

  • Add DO and END semantic depth coloring

  • Add configuration for batch reports (output, editor, or viewer)

  • Fix status bar not properly reflecting state

v1.1.0

  • Add cosmetic changes to subscriptions UI

  • Update successful sign-in page

v1.0.2

  • Updated webviews & subscription messaging

v1.0.1

  • Fixed script path issue from restructure

v1.0.0

  • Official release 🎉

  • Add subscription UI to side bar

  • Remove preferred case from defined variables & procedures

  • Switch to PowerOn Pro activity bar

Capabilities

PowerOn Pro is the fastest way to develop on the Symitar core platform and we're barely getting started with its feature set. Check out what's available now and what's coming to PowerOn Pro in the very near future.

Have a feature suggestion? Please let us know on or through our portal. We're always looking to improve our feature set to bring a better developer UX to the Symitar community.

Feature
Description
Status

the most complete and robust highlighting for the PowerOn language

Available

Syntax highlighting

Available • Treat yourself to beautiful syntax highlighting for the PowerOn language to help you visually interpret your code on any available VS Code theme.

One more thing, we know many of your PowerOn files may not have an extension at all. As you open these, we'll automatically detect the PowerOn language and keep record of the association for future use 😎

File icon theme

Available • Quickly visualize what type of PowerOn is in your workspace with simple and beautiful file icons that distinctly set them apart from one another.

Code completions

Available • Freely type away and let PowerOn Pro suggest completions for you. We've got you covered with completions for records, keywords, functions, and more!

Multi-document definitions and references

Available • Navigate between PowerOn files with ease. Any #INCLUDE you have referenced in a file will be available for you to jump to with a simple click (CTRL + Click on Windows, CMD + Click on macOS). We also support cross-file variables and procedures.

Code snippets

Available • We've included a few code snippets to help you get started with some of the most common PowerOn constructs. Just type the snippet prefix and hit Tab to expand the snippet.

Hovers

Available • We've bridged the gap between PowerOn development and documentation by making various Jack Henry eDocs references available directly on the keyword, function, and any of the special literals of the PowerOn language as a hoverable.

Function signatures

Available • Remembering all of the PowerOn functions and their parameters can be a challenge for even the most experienced developers. We offer function signatures that appear as you type to display which parameter is next as well as what it's for.

Tasks

Available • With our syntax highlighting, we brought Docstrings to your PowerOn comments. Take it one step further by adding @TODO anywhere in a comment and we'll collect them for you to work through in a custom view.

PowerOn code formatter

Available • Enforce a consistent code style across your entire codebase by parsing and re-printing according to defined rules taking maximum line length into account and even case sensitivity.

Direct integration to Symitar (SSH)

Connect your Symitar core to PowerOn Pro and take advantage of realtime PowerOn validation, deployments, and batch execution from within VS Code.

Validate PowerOns

Available • Get validation feedback from Symitar as you save your PowerOn files.

Deploy and Install PowerOns

Available • Choose to deploy or install your PowerOns to your Symitar core.

Execute PowerOns and get batch output

Available • Run your batch PowerOns and get the output directly in VS Code.

PowerOn diagnostics

Plus / Continuous Development • Natively you have the ability to validate your PowerOn but this only identifies the breaking change starting at the top of the file. The Libum Semantic Analyzer adds realtime diagnostics for undefined and unused variables, syntax errors, data type mismatches, constant reassignment, expression validation, division by zero, dead branches, non-exhaustive conditional paths, field validation, function validation, and FMPERFORM / TRANPERFORM statement validation.

CodeLens reference counts are part of this Plus analyzer experience, showing N references above defined variables and procedures.

Diagnostics understand local #INCLUDE files and route include-file errors back to the relevant specfile instead of leaking unrelated diagnostics onto the active file.

Direct integration to Symitar (HTTPs)

Plus / Available • Though the legacy SSH connection technically works, it's not 100% for every credit union and sometimes requires a few hoops to jump through to get it working. With HTTPs you connect directly to the Symitar Application Server to manage your PowerOns, LetterFiles, and HelpFiles.

Symitar Explorer

Plus • We provide a robust custom view in VS Code that levels up the integration between PowerOn development and the Symitar core.

Remote Syms

Available • We've created a semi-virtual workspace for you to freely navigate the LETTERSPECS, HELPFILES, and REPWRITERSPECS directories for any of your Syms.

Remote Syms - SCM

Coming Soon • Currently a Remote Sym is literally intended to be a "virtual" editing on your remote Symitar host. Meaning, as you make edits they're deployed and inversely it will periodically sync to stay up to date with what other folks may be deploying to the remote as well.

This technically means, that if you were to develop in ( ) there is a potential to clobber files you've been editing locally, the next time you sync. To mitigate this, we're introducing a light weight Source Control Manager (SCM) to run the incoming changes through a diff editor to better protect your copy that way you still get the latest and great but have better autonomy of what your local state is.

Reports

Available • We are basically combining and adding our flavor to the UIs you find in Batch Control and Print Control to give you an incredible UX while working with batch output generated from your PowerOns. You'll have the luxury of quickly navigating through your Symitar reports as well as even launch accounts in Symitar Quest directly from our views.

Embedded HTML language support

Plus / In Development • PowerOns with HTML are becoming the standard for creating rich user interfaces available in Symitar - encapsulating these with htmlViewLine can be a bit cumbersome so we're introducing the ability to write HTML directly in your PowerOn files with full language support. We'll handle the translation whenever you choose to deploy!

On-Demand PowerOn rendering

Plus / In Development • To satisfy our vision of being the fastest way to develop on the Symitar core platform, it made a lot of sense to support both sides (Batch + Demand) of PowerOn development. That said, we're building a rendering engine for on-demand PowerOns to display from within VS Code preventing you from having to launch Symitar Quest to see your code come to life.

SymXchange PowerOn Development

Plus / Coming Soon • Writing PowerOns for SymXchange typically involves a two-step process in order for the changes to reflect in your call:

  1. Ensure the PowerOn is loaded in the SymX instance Common Parameters

  2. Bounce the SymX instance device

This involves navigating through Symitar Quest and waiting for each of the UIs to load for you to perform the actions. With PowerOn Pro, we remove these requirements and handle the complete refresh lifecycle internally.

Job Files Manager

Plus / Coming Soon • Creating and editing Job Files in Symitar Quest can be a bit tricky given the strictly linear wizard-based UI. We have reimagined this user-experience with a beautiful UI and quite a few more controls to create / maintain these much more easily.

Quiet Remote Sym auto-deploy and auto-validation success notifications
  • Suppress noisy standalone include diagnostic logs

  • /
    SELECT
    clauses
    Fix rename symbol and reference counting across library consumers
  • Fix reference CodeLens on non-declarations in spec files without a DEFINE section

  • Fix false-positive invalid mnemonic diagnostics for LOANAPP PERSON and NONACCTNAME name fields

  • Fix report viewer and subscription view activation states

  • Add FOR EACH WITH completions for unique keys and record fields

  • Add FMPERFORM / TRANPERFORM SET field completions, hovers, and signature help

  • Improve syntax highlighting for operators and literals in FOR WITH and SORT / SELECT clauses

  • function parameter completions
  • Add new diagnostic settings: fieldValidation, functionValidation, statementValidation, and syntaxErrors

  • Add parser-based diagnostics replacing regex-based validation (field, function, statement, and syntax error detection)

  • Add undefined variable quick fix and DEFINE section completions

  • Fix failure mode for SSH transfer permission changes

  • Fix Plus subscription defaulting to active before validation

  • Improve auto-completions with new trigger characters for function parameters

  • Fix issue where HTTPS connector would falsely show connected

  • Fix issue where native SSH deployments on all Symitar files weren't applying the correct SYM### group

  • Improve varying connection statuses including Permission Denied

  • Fix issue where Fetch Report by Title was returning first result in Batch Summary
  • Fix issue with record completions that were out of context

  • Improve completions for multi-word records (e.g. share name)

  • Fix issue where Untitled documents threw various LSP errors

  • Fix issue where VS Code would steal focus when updating webviews

  • Fix misleading log messages for failed deployments
  • Prevent trigger in general contexts

  • Update PowerOn validate diagnostics to remain until file change

  • Add reconnect for dropped SSH clients for both connectors

  • Add forced document newline on save (requirement for Quest)

  • Add LSP support for Untitled documents with poweron as language

  • Fix issue with alignLogicalOperators for nested parentheses

  • Fix interactive PowerOn execution inputs for SSH and HTTPs connectors

  • Update expandParentheses to use configured indentation

  • Add spaceAroundOperatorsExclude to ignore for certain contexts
  • Fix issue where SETUP division was doublespacing right side =

  • Fix issue where commented inline keywords were breaking the formatter

  • Simplify spaceAroundEquals to spaceAroundOperators

  • Improve syntax highlighting, hovers, and tokenization

  • Move to @libum-llc/symitar library for SSH and HTTPS connectors

  • Various performance improvements & refactorization

  • Fix validation diagnostics w/tab indentation

  • Update fetching batch reports for SSH connections

    Dylan Martinez
    [email protected]
    Don Nguyen
    [email protected]
    [email protected]
    [email protected]
    [email protected]

    File icon theme

    an extended Seti (built-in) icon theme with known PowerOn file extensions

    Available

    Code completions

    get prompted as you type with relevant and helpful completions

    Available

    Multi-document definitions & references

    quickly navigate definitions, references, and dependencies in your PowerOn

    Available

    Code snippets

    get started faster with an extensible snippet library

    Available

    Hovers

    gain insight from eDocs into the keyword, function, template, or database record

    Available

    Function signatures

    know what the PowerOn function does as you write it

    Available

    Tasks

    keep track of what's next for your PowerOn "todos"

    Available

    Direct integration to Symitar (SSH)

    validate, deploy, install, or execute PowerOn files directly in VS Code

    Available

    Plus PowerOn code formatter

    Ensure all of your PowerOns conform to a consistent style

    Available

    Plus PowerOn diagnostics

    analyzer-driven realtime diagnostics and CodeLens reference counts for PowerOn files

    Continuous Development

    Plus Direct integration to Symitar (HTTPs)

    perform the same actions from SSH on a more stable HTTP API

    Available

    Plus Symitar Explorer - Remote Syms

    get a semi-virtual workspace for the LetterFiles, HelpFiles, and PowerOn directories on any Sym

    Available

    Plus Symitar Explorer - Remote Syms SCM

    don't worry about clobbering files as you sync, we'll funnel these through the source control manager

    Coming Soon

    Plus Symitar Explorer - Reports

    level up the execution of your PowerOns with a robust reports view

    Available

    Plus Embedded HTML language support

    get the HTML syntax highlighting within your PowerOns but also forget about wrapping every line in htmlViewLine

    In Development

    Plus On-Demand PowerOn Rendering

    choose an account and run on-demand PowerOns straight from VS Code

    In Development

    Plus SymXchange PowerOn Development

    manage the full lifecycle of SymX PowerOns without opening Symitar Quest

    Coming Soon

    Plus Job Files Manager

    Skip out on the wizard prompts and use templates to prototype new batch jobs in seconds

    Coming Soon

    Supported file extensions Currently we have file icons for .PO, .DEF, .SET, .PRO, .SUB, .FM, and .FMP. Any file without or with an arbitrary file extension in a known PowerOn directory will automatically be given the .PO file icon.

    executePowerOn
    Syntax highlighting
    Discord
    Feedback
    The PowerOn Pro file icon theme for VS Code.
    The PowerOn Pro: Tasks panel view.

    Settings

    Discover how to personalize your PowerOn Pro user experience.

    PowerOn Pro ships with a number of configurable settings to personalize your VS Code experience as you develop.

    Auto Associate PowerOn Workspace

    If more than 50% of your active workspace has known PowerOn file extensions, a file association for poweron on the path will be added automatically.

    Default Value
    Available Values

    Auto Deploy `#INCLUDE` Files

    Controls how #INCLUDE files are deployed when deploying a PowerOn (only for non-Remote Syms).

    Default Value
    Available Values

    Auto Disconnect Sym

    Controls when your active Sym connection should automatically disconnect.

    Default Value
    Available Values

    Auto Validate PowerOn

    Controls when the language server runs PowerOn validation. Useful if you like to validate your PowerOn file each time you save.

    Default Value
    Available Values

    Batch

    Batch related configuration options specific to the SSH connection type.

    Fetch Report Timeout (SSH)

    The maximum time to wait (min) for the completion of a batch PowerOn run.

    Default Value
    Available Values

    Queue Override (SSH)

    The batch queue number to use when poweronPro.batch.queueSelection is set to override.

    Default Value
    Available Values

    Queue Selection (SSH)

    Controls how the batch queue is selected for a batch PowerOn run. The available options will either use the first available queue, prompt you to select a queue, or use the override value set by the setting.

    Default Value
    Available Values

    Report Viewer

    Controls where batch reports are displayed.

    Default Value
    Available Values

    CLI Worker Timeout

    The maximum time (sec) to wait for the initialization of the Symitar CLI workers which is only used with an SSH connection type to Symitar.

    Default Value
    Available Values

    Debug

    Enables debug logging for the @libum-llc/symitar library. The logs will appear in the PowerOn Pro output channel.

    Default Value
    Available Values

    Diagnostics

    Real-time diagnostics configuration options which are triggered when the PowerOn changes in an active text editor.

    Data Types

    Plus Shows incorrect variable assignments and invalid data type declarations as errors for PowerOn files.

    Default Value
    Available Values

    Constant Reassignment

    Plus Warns when a constant is reassigned in PowerOn files.

    Default Value
    Available Values

    Defined Variables

    Plus Shows undefined variables or procedures as errors for PowerOn files.

    Default Value
    Available Values

    Expression Validation

    Plus Validates operator and operand type compatibility in expressions for PowerOn files.

    Default Value
    Available Values

    Field Validation

    Plus Validates field mnemonics against their record types. For example, using a SHARE field mnemonic in a context that expects an ACCOUNT field will be flagged as an error.

    Default Value
    Available Values

    Function Validation

    Plus Validates function names and parameter counts. Unknown function names and incorrect numbers of arguments will be flagged as errors.

    Default Value
    Available Values

    Statement Validation

    Plus Validates FMPERFORM and TRANPERFORM statements, including record type compatibility, allowed operations, TARGETFILE keyword usage, and transaction codes.

    Default Value
    Available Values

    Syntax Errors

    Plus Shows syntax errors detected by the PowerOn parser. These are structural issues in your PowerOn code such as missing keywords, unexpected tokens, or malformed statements.

    Default Value
    Available Values

    Unused Variables

    Plus Shows unused variables as dimmed for PowerOn files.

    Default Value
    Available Values

    CodeLens References

    Plus Shows an N references CodeLens above defined variables and procedures.

    Default Value
    Available Values

    Formatter

    Configuration options for the PowerOn code formatter.

    Align Defines

    Align = signs in DEFINE sections for table-like readability.

    Default Value
    Available Values

    Align Logical Operators

    Align logical operators (AND, OR) vertically at the end of each line in multi-line conditions. Forces line breaks at each operator.

    Default Value
    Available Values

    Expand Parentheses

    Expand parenthesized expressions onto multiple lines with opening/closing parentheses on their own lines and content indented.

    Default Value
    Available Values

    Format On Save

    Automatically format PowerOn files when saving.

    Default Value
    Available Values

    Indent Size

    Number of spaces per indentation level (or tab width when useTabs is enabled).

    Default Value
    Available Values

    Keyword Case

    Casing for PowerOn keywords, database records, and fields (e.g., TARGET, ACCOUNT, CLOSEDATE).

    Default Value
    Available Values

    Max Blank Lines

    Maximum consecutive blank lines to preserve within divisions.

    Default Value
    Available Values

    Print Width

    Maximum line length for PowerOn code before wrapping.

    Default Value
    Available Values

    Section Spacing

    Number of blank lines between major divisions (TARGET, DEFINE, SETUP, SELECT, SORT, PRINT, TOTAL, PROCEDURE).

    Default Value
    Available Values

    Space After Delimiter

    Add space after comma delimiters in function parameters (e.g., FUNC(a, b) vs FUNC(a,b)).

    Default Value
    Available Values

    Space Around Operators

    Add spaces around all operators: assignment (=), arithmetic (+, -, *, /), and comparison (<>, <, >, <=, >=). Logical operators (AND, OR,

    Default Value
    Available Values

    Space Around Operators Exclude

    Comma-separated list of statement types to exclude from space-around-operators formatting for the = operator (e.g., COL,DATASIZE).

    Default Value
    Available Values

    Use Tabs

    Use tabs instead of spaces for indentation.

    Default Value
    Available Values

    Uppercase Identifiers

    Uppercase all identifiers (variable names, procedure names). PowerOn is case-insensitive; some shops prefer all-caps for mainframe consistency.

    Default Value
    Available Values

    Include Paths

    Additional absolute directory paths to search for #INCLUDE files. These directories will be searched in addition to the directory of the PowerOn file being processed.

    Default Value
    Available Values

    Local Symitar Path

    Plus The root path where your local Sym directories are synchronized. This is a required field for the feature and it's recommended to set as a path not directly in a typical folder structure for projects.

    Default Value
    Available Values

    Offline Validation

    Controls whether a randomly named PowerOn is created, uploaded for validation, then deleted.

    Default Value
    Available Values

    Preferred Case

    Controls the case of keywords, functions, variables, and records. Additionally, you'll see this reflected in other relevant areas such as hovers and snippets.

    Default Value
    Available Values

    Semantic Tokens

    Plus Enables analyzer-driven semantic syntax highlighting with distinct tokens for variables, records, fields, procedures, constants, and literals.

    Default Value
    Available Values

    Remote Sym SFTP Concurrency

    Plus The number of files to download simultaneously when using SFTP sync (used by Remote Syms and Reports).

    Default Value
    Available Values

    Remote Sym Sync Method

    Plus Controls how Remote Syms are synchronized with the Symitar server.

    Default Value
    Available Values
    • sftp: Use SFTP for synchronization (no external dependencies required)

    • rsync: Use rsync for synchronization (requires WSL on Windows, rsync and sshpass installed)

    Reports

    Configuration options for the Symitar Explorer Reports feature.

    Background Sync Interval

    Plus Background sync interval in minutes for reports. Set to 0 to disable background syncing.

    Default Value
    Available Values

    Retention Days

    Plus Number of days of reports to keep locally synced.

    Default Value
    Available Values

    SSH Port

    The port to use when connecting to the Symitar host. For almost all cases this should be 22 but if you have port-forwarded and need the flexibility to use SSH over a different port, this is how you'd do it.

    Default Value
    Available Values
    WITH
    ) always have spaces.

    true

    true or false

    off

    off, prompt, or silent

    never

    never, 1 hour, 4 hours, 8 hours, or 12 hours

    off

    off or onsave

    15

    Between 1 and 60

    0

    Between 0 and 3

    first

    first, prompt, or override

    editor

    output, editor, or poweron-pro

    30

    Between 5 and 120 seconds

    false

    true or false

    false

    true or false

    true

    true or false

    true

    true or false

    true

    true or false

    true

    true or false

    true

    true or false

    true

    true or false

    true

    true or false

    true

    true or false

    true

    true or false

    false

    true or false

    false

    true or false

    false

    true or false

    false

    true or false

    1

    Between 0 and 8

    upper

    upper, lower, or preserve

    1

    Between 1 and 3

    80

    Between 40 and 200

    1

    Between 0 and 5

    false

    true or false

    false

    true or false

    --

    Comma-separated list of statement types

    false

    true or false

    false

    true or false

    []

    List of any local directory paths

    --

    Any local directory path

    true

    true or false

    upper

    upper, lower, or camel

    true

    true or false

    20

    Between 1 and 50

    sftp

    sftp or rsync

    5

    Between 0 and 60

    15

    Between 1 and 360

    22

    Any available port

    Just an FYI. Disabling this feature will automatically "publish" your PowerOn with each validation. We believe you shouldn't have to commit something to Symitar in order to check whether it's valid, that's why we defaulted this setting to true.

    Queue Override
    Remote Syms