# Settings

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  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

## Auto Deploy \`#INCLUDE\` Files

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

| Default Value | Available Values             |
| ------------- | ---------------------------- |
| `off`         | `off`, `prompt`, or `silent` |

## Auto Disconnect Sym

Controls when your active Sym connection should automatically disconnect.

| Default Value | Available Values                                       |
| ------------- | ------------------------------------------------------ |
| `never`       | `never`, `1 hour`, `4 hours`, `8 hours`, or `12 hours` |

## 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  |
| ------------- | ----------------- |
| `off`         | `off` or `onsave` |

## 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     |
| ------------- | -------------------- |
| `15`          | Between `1` and `60` |

### Queue Override (SSH)

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

| Default Value | Available Values    |
| ------------- | ------------------- |
| `0`           | Between `0` and `3` |

### 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 [Queue Override](#queue-override) setting.

| Default Value | Available Values                 |
| ------------- | -------------------------------- |
| `first`       | `first`, `prompt`, or `override` |

### Report Viewer

Controls where batch reports are displayed.

| Default Value | Available Values                     |
| ------------- | ------------------------------------ |
| `editor`      | `output`, `editor`, or `poweron-pro` |

## 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              |
| ------------- | ----------------------------- |
| `30`          | Between `5` and `120` seconds |

## Debug

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

## 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  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### Constant Reassignment

`Plus` Warns when a constant is reassigned in PowerOn files.

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

### Defined Variables

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

### Expression Validation

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

### 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  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

### 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  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

### Statement Validation

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

### 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  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

### Unused Variables

`Plus` Shows unused variables as dimmed for PowerOn files.

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

## CodeLens References

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

## Formatter

Configuration options for the PowerOn code formatter.

### Align Defines

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### 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  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### Expand Parentheses

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### Format On Save

Automatically format PowerOn files when saving.

| Default Value | Available Values  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### Indent Size

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

| Default Value | Available Values    |
| ------------- | ------------------- |
| `1`           | Between `0` and `8` |

### Keyword Case

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

| Default Value | Available Values                |
| ------------- | ------------------------------- |
| `upper`       | `upper`, `lower`, or `preserve` |

### Max Blank Lines

Maximum consecutive blank lines to preserve within divisions.

| Default Value | Available Values    |
| ------------- | ------------------- |
| `1`           | Between `1` and `3` |

### Print Width

Maximum line length for PowerOn code before wrapping.

| Default Value | Available Values       |
| ------------- | ---------------------- |
| `80`          | Between `40` and `200` |

### Section Spacing

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

| Default Value | Available Values    |
| ------------- | ------------------- |
| `1`           | Between `0` and `5` |

### Space After Delimiter

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### Space Around Operators

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### 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                        |
| ------------- | --------------------------------------- |
| `--`          | Comma-separated list of statement types |

### Use Tabs

Use tabs instead of spaces for indentation.

| Default Value | Available Values  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

### 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  |
| ------------- | ----------------- |
| `false`       | `true` or `false` |

## 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                  |
| ------------- | --------------------------------- |
| `[]`          | List of any local directory paths |

## Local Symitar Path

`Plus` The root path where your local Sym directories are synchronized. This is a required field for the [Remote Syms](/poweron-pro/capabilities.md#remote-syms) feature and it's recommended to set as a path not directly in a typical folder structure for projects.

| Default Value | Available Values         |
| ------------- | ------------------------ |
| `--`          | Any local directory path |

## Offline Validation

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

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

## 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             |
| ------------- | ---------------------------- |
| `upper`       | `upper`, `lower`, or `camel` |

## Semantic Tokens

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `true`        | `true` or `false` |

## 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     |
| ------------- | -------------------- |
| `20`          | Between `1` and `50` |

## Remote Sym Sync Method

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

| Default Value | Available Values  |
| ------------- | ----------------- |
| `sftp`        | `sftp` or `rsync` |

* **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     |
| ------------- | -------------------- |
| `5`           | Between `0` and `60` |

### Retention Days

`Plus` Number of days of reports to keep locally synced.

| Default Value | Available Values      |
| ------------- | --------------------- |
| `15`          | Between `1` and `360` |

## 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   |
| ------------- | ------------------ |
| `22`          | Any available port |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.libum.io/poweron-pro/resources/settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
