Settings Reference

The IronPLC extension provides configuration settings to customize its behavior. Access these settings through:

  • File ‣ Preferences ‣ Settings (Windows/Linux)

  • Code ‣ Preferences ‣ Settings (macOS)

Then search for “ironplc” to find all extension settings.

VS Code settings panel filtered to show IronPLC extension settings

The VS Code settings panel with IronPLC settings.

Available Settings

ironplc.path

Type:

String

Default:

Empty (auto-discovery)

Specifies the path to the ironplcc executable. When empty (the default), the extension automatically searches for the compiler in standard locations.

Use this setting when:

  • The compiler is installed in a non-standard location

  • You want to use a specific version of the compiler

  • Auto-discovery is not finding your installation

Example values:

  • Windows: C:\Program Files\IronPLC\bin\ironplcc.exe

  • macOS: /usr/local/bin/ironplcc

  • Linux: /home/username/ironplc/ironplcc

ironplc.logLevel

Type:

Enum

Default:

ERROR

Values:

ERROR, WARN, INFO, DEBUG, TRACE

Controls the verbosity of compiler logging. Higher levels include all messages from lower levels.

  • ERROR: Only error messages (quietest)

  • WARN: Warnings and errors

  • INFO: Informational messages, warnings, and errors

  • DEBUG: Detailed debugging information

  • TRACE: Maximum verbosity (most detailed)

Increase the log level when troubleshooting issues with the extension or compiler.

ironplc.logFile

Type:

String

Default:

Empty (no file logging)

Specifies a file path where the compiler should write log messages. When empty, logs are not written to a file.

This setting is useful for:

  • Capturing detailed logs for bug reports

  • Debugging issues that occur intermittently

  • Analyzing compiler behavior over time

Example: /tmp/ironplc.log or C:\Users\username\ironplc.log

Note

The log file can grow large when using verbose log levels. Remember to disable file logging or delete the log file when troubleshooting is complete.

ironplc.dialect

Type:

Enum

Default:

iec61131-3-ed2

Values:

iec61131-3-ed2, iec61131-3-ed3, rusty, codesys

Selects the language dialect preset. A dialect controls the IEC 61131-3 edition and a default set of vendor extensions.

  • iec61131-3-ed2: Strict IEC 61131-3:2003 (Edition 2). No vendor extensions.

  • iec61131-3-ed3: IEC 61131-3:2013 (Edition 3) with LTIME, REF_TO, etc.

  • rusty: RuSTy-compatible — designed for compatibility with code from RuSTy-based PLC environments.

  • codesys: CODESYS-compatible — Edition 2 base with REF_TO and the vendor extensions that the CODESYS IDE accepts.

This setting corresponds to the --dialect command-line option documented in ironplcc.

See Enabling Dialects and Features for background on dialects and Edition Support for the full list of edition-gated features.

Settings in settings.json

You can also configure these settings directly in your settings.json file:

{
  "ironplc.path": "/custom/path/to/ironplcc",
  "ironplc.logLevel": "DEBUG",
  "ironplc.logFile": "/tmp/ironplc-debug.log",
  "ironplc.dialect": "rusty"
}