Theme
Version
GitHub PyPI Discord
On this page

IDE support

Citry uses the same parser in its command-line checker and editor tooling. A template that fails in the editor should therefore fail for the same reason in citry check and at runtime.

The open-beta tooling is VS Code-first. The language server is editor-neutral, but each editor still needs a client that knows how to start it and which files to send.

Current tooling

ToolWhat it doesStatus
citry checkChecks templates from a terminal or CIIncluded in Citry
pygments-citryHighlights Citry source in Pygments-based toolsPublished separately
citry-lspProvides diagnostics, completion, hover, navigation, and symbolsImplemented; public release is part of the open beta
VS Code extensionHighlights inline and standalone templates and starts citry-lspImplemented; public release is part of the open beta
PyCharm + LSP4IJConnects PyCharm to Citry's standard language-server featuresTested setup available; no Citry-specific coloring or official plugin yet

Start with VS Code for the complete editor integration. See PyCharm for the tested LSP4IJ setup and its current coloring and embedded-language limits.

Check templates without an editor extension

Every editor can run the batch checker in a terminal. Choose the explicit static mode when importing the application is unnecessary:

citry check --static

For registered component names, inputs, and slots, point the command at the Citry instance used by the application:

citry --app myproject.app:citry_app check

If the app import fails, Citry reports the failure, continues with syntax-only checks, and exits with status 2. CI cannot mistake that degraded result for a complete registry check.

Registry-backed checks also report unknown free template roots. Configure the shared batch/editor rule, runtime globals, and analysis-only variables on the application as described in Template linting.