Gateway Language Server
Flint ships a full language server for Ignition Jython scripts, backed by your live gateway. It knows the actual system.* API exposed by your gateway's installed modules and indexes your project's script library, so completion and navigation reflect your real environment — not a generic Python install.
The language server runs by default whenever a gateway with an API token is selected. It does not require a running Designer.
Needs a configured gateway with an API token in flint.config.json. The Flint Designer Bridge module must be installed on the gateway. A running Designer is not required. Without a selected gateway and token, the language server stays dormant and Flint falls back to offline completion.
How it works
The extension bundles the flint-lsp-proxy language server — there is nothing to install. When you select a gateway, the extension launches the proxy over stdio; the proxy forwards language requests to the Flint Designer Bridge module running on the gateway, which parses your scripts with Ignition's own Jython (Python 2.7) parser.
Setup
- Install the Flint Designer Bridge module on your gateway (see Module Installation).
- Add the gateway to
flint.config.jsonand pointmodules.project-scan-endpoint.apiTokenFilePathat a file containing an API token:
{
"gateways": [
{
"id": "my-gateway",
"host": "gateway.example.com",
"port": 8043,
"ssl": true,
"modules": {
"project-scan-endpoint": {
"apiTokenFilePath": "~/.flint/tokens/my-gateway-token.json"
}
}
}
]
}
- Select the gateway in the Flint status bar. The language server starts automatically.
Getting a token
The token type depends on your Ignition version:
| Ignition version | Token type | How to get it |
|---|---|---|
| 8.1.44+ | Flint bearer token | Auto-generated by the Flint module. The gateway writes a token file to <dataDir>/modules/flint/gateway/api-token.json on startup — copy it to your workstation, or set the FLINT_GATEWAY_API_TOKEN environment variable on the gateway to supply your own. |
| 8.3.1+ | Native gateway API token | Create an API token in the gateway web interface (Config > Security > API Tokens) and save it to a file referenced by apiTokenFilePath. |
The extension detects the gateway version and sends the token with the matching scheme automatically.
Language features
| Feature | Behavior |
|---|---|
| Completion | Position-aware. system.* functions from the live gateway's ScriptManager, project script modules, local variables, and Python keywords. |
| Hover | Function signatures (parameter names) as markdown. |
| Go to definition | Jumps within a file and across files into project script modules. |
| Find references | Intra-file, best-effort identifier matching. |
| Diagnostics | Jython syntax errors, reported as you type (source flint-jython). |
| Symbols | Document symbols (outline) and workspace symbol search. |
If your gateway hosts a single project, the language server selects it automatically; otherwise it uses the project associated with your selected gateway and workspace.
The server restarts automatically when you switch gateways or projects, or change the relevant configuration — no reload required.
- Hover shows function signatures only — no docstrings, no parameter types or defaults, and no hover for
system.*functions. - Diagnostics are syntax-only. Undefined names, type errors, and other semantic problems are not reported.
- Find references is best-effort and limited to the current file.
- No completion for Java classes, tag paths, Perspective style classes, or view paths.
Settings
| Setting | Default | Purpose |
|---|---|---|
flint.languageServer.enabled | true | Turns the gateway language server on or off. When off, Flint uses the offline/Designer completion providers instead. |
flint.languageServer.proxyPath | (bundled) | Advanced override: absolute path to an external flint-lsp-proxy executable. Leave unset to use the bundled server. |
Disabling the language server removes hover, go-to-definition, references, and diagnostics — those features exist only on this path. The fallback providers offer completion only. See Completion for how the fallback sources work.