# 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.

{% hint style="success" %}
**Have a feature suggestion?**\
\
Please let us know on [Discord](https://discord.gg/libum) or through our [Feedback](https://feedback.libum.io) portal. We're always looking to improve our feature set to bring a better developer UX to the Symitar community.
{% endhint %}

| Feature                                                                                                                 | Description                                                                                                                                      | Status                                                    |
| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- |
| [Syntax highlighting](#syntax-highlighting)                                                                             | the most complete and robust highlighting for the PowerOn language                                                                               | <mark style="color:green;">`Available`</mark>             |
| [File icon theme](#file-icon-theme)                                                                                     | an extended [Seti](https://github.com/microsoft/vscode/tree/main/extensions/theme-seti) (built-in) icon theme with known PowerOn file extensions | <mark style="color:green;">`Available`</mark>             |
| [Code completions](#code-completions)                                                                                   | get prompted as you type with relevant and helpful completions                                                                                   | <mark style="color:green;">`Available`</mark>             |
| [Multi-document definitions & references](#multi-document-definitions-and-references)                                   | quickly navigate the definitions, references, and dependencies of your PowerOn                                                                   | <mark style="color:green;">`Available`</mark>             |
| [Code snippets](#code-snippets)                                                                                         | get started faster with an extensible snippet library                                                                                            | <mark style="color:green;">`Available`</mark>             |
| [Hovers](#hovers)                                                                                                       | gain insight from eDocs into the keyword, function, template, or database record                                                                 | <mark style="color:green;">`Available`</mark>             |
| [Function signatures](#function-signatures)                                                                             | know what the PowerOn function does as you write it                                                                                              | <mark style="color:green;">`Available`</mark>             |
| [Tasks](#tasks)                                                                                                         | keep track of what's next for your PowerOn "todos"                                                                                               | <mark style="color:green;">`Available`</mark>             |
| [Direct integration to Symitar (SSH)](#direct-integration-to-symitar-ssh)                                               | validate, deploy, install, or execute PowerOn files directly in VS Code                                                                          | <mark style="color:green;">`Available`</mark>             |
| <mark style="color:purple;">`Plus`</mark> [PowerOn code formatter](#poweron-code-formatter)                             | Ensure all of your PowerOns conform to a consistent style                                                                                        | <mark style="color:green;">`Available`</mark>             |
| <mark style="color:purple;">`Plus`</mark> [PowerOn diagnostics](#poweron-diagnostics)                                   | evolving realtime diagnostics (undefined / unused variables, incorrect syntax, etc.) of your PowerOns                                            | <mark style="color:blue;">`Continuous Development`</mark> |
| <mark style="color:purple;">`Plus`</mark> [Direct integration to Symitar (HTTPs)](#direct-integration-to-symitar-https) | perform the same actions from SSH on a more stable HTTP API                                                                                      | <mark style="color:green;">`Available`</mark>             |
| <mark style="color:purple;">`Plus`</mark> [Symitar Explorer - Remote Syms](#remote-syms)                                | get a semi-virtual workspace for the LetterFiles, HelpFiles, and PowerOn directories on any Sym                                                  | <mark style="color:green;">`Available`</mark>             |
| <mark style="color:purple;">`Plus`</mark> [Symitar Explorer - Remote Syms SCM](#remote-syms-scm)                        | don't worry about clobbering files as you sync, we'll funnel these through the source control manager                                            | <mark style="color:orange;">`Coming Soon`</mark>          |
| <mark style="color:purple;">`Plus`</mark> [Symitar Explorer - Reports](#reports)                                        | level up the execution of your PowerOns with a robust reports view                                                                               | <mark style="color:green;">`Available`</mark>             |
| <mark style="color:purple;">`Plus`</mark> [Embedded HTML language support](#embedded-html-language-support)             | get the HTML syntax highlighting within your PowerOns but also forget about wrapping every line in `htmlViewLine`                                | <mark style="color:blue;">`In Development`</mark>         |
| <mark style="color:purple;">`Plus`</mark> [On-Demand PowerOn Rendering](#on-demand-poweron-rendering)                   | choose an account and run on-demand PowerOns straight from VS Code                                                                               | <mark style="color:blue;">`In Development`</mark>         |
| <mark style="color:purple;">`Plus`</mark> [SymXchange PowerOn Development](#symxchange-poweron-development)             | manage the full lifecycle of SymX PowerOns without opening Symitar Quest                                                                         | <mark style="color:orange;">`Coming Soon`</mark>          |
| <mark style="color:purple;">`Plus`</mark> [Job Files Manager](#job-files-manager)                                       | Skip out on the wizard prompts and use templates to prototype new batch jobs in seconds                                                          | <mark style="color:orange;">`Coming Soon`</mark>          |

## Syntax highlighting

<mark style="color:green;">`Available`</mark> • Treat yourself to beautiful syntax highlighting for the PowerOn language to help you visually interpret your code on any available VS Code theme.

<figure><img src="https://2027633339-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0iwPMKo9mL1zod6Z1Lk%2Fuploads%2FZ3tVRNdjMlknPr7Fgrtr%2Fsyntax_highlighting.png?alt=media&#x26;token=e57bdf85-d9d2-4006-8ed8-a1fd073d3569" alt=""><figcaption></figcaption></figure>

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

<mark style="color:green;">`Available`</mark> • Quickly visualize what type of PowerOn is in your workspace with simple and beautiful file icons that distinctly set them apart from one another.

<figure><img src="https://2027633339-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0iwPMKo9mL1zod6Z1Lk%2Fuploads%2F6lkqPV9EeEQYPMTY7gXv%2Fpoweron_file_theme.png?alt=media&#x26;token=3369779f-dcb7-4143-88e3-093a708fde7b" alt="" width="375"><figcaption><p>The PowerOn Pro file icon theme for VS Code.</p></figcaption></figure>

{% hint style="success" %}
**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.
{% endhint %}

## Code completions

<mark style="color:green;">`Available`</mark> • Freely type away and let PowerOn Pro suggest completions for you. We've got you covered with completions for records, keywords, functions, and more!

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/code_completions.gif" alt=""><figcaption></figcaption></figure>

## Multi-document definitions & references

<mark style="color:green;">`Available`</mark> • 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 any cross-file variables and procedures.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/multi-document_references.gif" alt=""><figcaption></figcaption></figure>

## Code snippets

<mark style="color:green;">`Available`</mark> • 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.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/code_snippets.gif" alt=""><figcaption></figcaption></figure>

## Hovers

<mark style="color:green;">`Available`</mark> • 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.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/hovers.gif" alt=""><figcaption></figcaption></figure>

## Function signatures

<mark style="color:green;">`Available`</mark> • 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.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/function_signatures.gif" alt=""><figcaption></figcaption></figure>

## Tasks

<mark style="color:green;">`Available`</mark> • 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.

<figure><img src="https://2027633339-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0iwPMKo9mL1zod6Z1Lk%2Fuploads%2Fx1kGrvdXooDpZTsximDK%2Fpoweron_pro_tasks.png?alt=media&#x26;token=f0118d43-d7be-44d0-859d-cd202f485703" alt="" width="563"><figcaption><p>The PowerOn Pro: Tasks panel view.</p></figcaption></figure>

## PowerOn code formatter

<mark style="color:green;">`Available`</mark> • 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

<mark style="color:green;">`Available`</mark> • Get validation feedback from Symitar as you save your PowerOn files.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/validate_poweron.gif" alt=""><figcaption></figcaption></figure>

### Deploy and Install PowerOns

<mark style="color:green;">`Available`</mark> • Choose to deploy or install your PowerOns to your Symitar core.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/deploy_and_install_poweron.gif" alt=""><figcaption></figcaption></figure>

### Execute PowerOns and get batch output

<mark style="color:green;">`Available`</mark> • Run your batch PowerOns and get the output directly in VS Code.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/run_poweron.gif" alt=""><figcaption></figcaption></figure>

## PowerOn diagnostics

<mark style="color:purple;">`Plus`</mark> / <mark style="color:blue;">`Continuous Development`</mark> • Natively you have the ability to validate your PowerOn but this only identifies the breaking change starting at the top of the file. We've introduced diagnostics that will holistically display errors and warnings for your PowerOn for things like undefined or unused variables and even syntax issues.

This will continuously evolve as we map out all of PowerOn's behavior. For now we have support for undefined variables with unused on the way!

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/poweron_diagnostics.gif" alt=""><figcaption></figcaption></figure>

## Direct integration to Symitar (HTTPs)

<mark style="color:purple;">`Plus`</mark> / <mark style="color:green;">`Available`</mark> • 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

<mark style="color:purple;">`Plus`</mark> • We provide a robust custom view in VS Code that levels up the integration between PowerOn development and the Symitar core.

### Remote Syms

<mark style="color:green;">`Available`</mark> • We've created a semi-virtual workspace for you to freely navigate the *LETTERSPECS*, *HELPFILES*, and *REPWRITERSPECS* directories for any of your Syms.

<figure><img src="https://libum-media.s3.us-east-2.amazonaws.com/poweron-pro/symitar_remote_explorer.gif" alt=""><figcaption></figcaption></figure>

### Remote Syms - SCM

<mark style="color:orange;">`Coming Soon`</mark> • 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 ( <img src="https://2027633339-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP0iwPMKo9mL1zod6Z1Lk%2Fuploads%2F1VEhqiksKGeMwLvK9Qmo%2Flocal_status_bar.png?alt=media&#x26;token=5876ec23-3689-4cf5-beed-ba78bb924ae7" alt="" data-size="line"> ) 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

<mark style="color:green;">`Available`</mark> • 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

<mark style="color:purple;">`Plus`</mark> / <mark style="color:blue;">`In Development`</mark> • 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

<mark style="color:purple;">`Plus`</mark> / <mark style="color:blue;">`In Development`</mark> • 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

<mark style="color:purple;">`Plus`</mark> / <mark style="color:orange;">`Coming Soon`</mark> • Writing PowerOns for SymXchange typically involves a two-step process in order for the changes to reflect in your [executePowerOn](https://docs.libum.io/nexum/symxchange/api-reference/persistent/poweronservice#executepoweron) 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

<mark style="color:purple;">`Plus`</mark> / <mark style="color:orange;">`Coming Soon`</mark> • 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.
