Extension Details

- Kirby CMS
- by Scott Boms
- 13 Recent Installs | 13 Total Installs
- Kirby CMS Completions.
- Repository
- Bug Reports
-
Read & Write Files
-
This extension is allowed to:
Readme
Kirby Completions for Nova
Static PHP completions generated from the current Kirby CMS reference in Nova's XML completions format.
What's included
- Kirby template helpers such as
page(),snippet(), andkirby() - Kirby's bundled icon names after an
icon:key in YAML blueprints - Contextual methods for documented variables such as
$page->,$site->,$file->, and$field-> - Static methods such as
Str::,Html::,F::, andA:: - Documented Kirby class names after
new - Support for Nova's built-in
phpandphp_onlysyntaxes - Support for plain and quoted icon values in Nova's built-in
yamlsyntax
Requirements
Install the YAML extension for Nova first. Kirby CMS configures that extension for Kirby projects and does not replace it.
Setup
Open a Kirby project and choose Extensions → Kirby CMS → Configure Blueprint Support.
The command:
- Detects the installed Kirby version from
kirby/composer.json. If that file is unavailable, it falls back to the rootcomposer.lock, then the rootcomposer.jsonrequirement. - Prompts for a version if detection is not possible.
- Copies the bundled schema to
.nova/kirby-blueprints/. - Merges a mapping into
.nova/Configuration.jsonfor both.ymland.yamlblueprints.
Other yaml.schemas mappings are preserved. The project-local schema path means the checked-in Nova configuration works without network access.
Use the extension's Project Settings to override the Kirby version or the default site/blueprints directory, then run the configure command again.
PHP Template Type Hints
When editing a PHP-only template or snippet, choose Editor → Insert Kirby Template Type Hints. The command adds PHPDoc types for $kirby, $site, $page, and $pages so PHP language tooling such as Intelephense can understand Kirby's injected template variables.
Existing variable annotations are preserved and only missing hints are added. If the file starts with <?php, the annotations are placed in that PHP block. Otherwise, the command prepends a PHP block without adding rendered whitespace before the existing template output.
Development Details
Use in a Nova extension
To test locally, enable extension development in Nova and run:
nova extension validate /path/to/Kirby.novaextension
nova extension activate /path/to/Kirby.novaextension
Update from the Kirby reference
Generator uses Python's standard library:
python3 Tools/generate_completions.py
For offline generation, save source pages and pass them to the script:
python3 Tools/generate_completions.py \
--reference-input reference.html \
--objects-input objects.html
The generated XML is intentionally contextual. Methods are offered only after the variable or static class prefix documented by Kirby, which avoids mixing more than a thousand unrelated methods into every PHP completion request.
Release Notes
Version 1.2.0
Adds a new Editor command to insert a set of type hints for php completions for $kirby, $page, $pages, and $site to assist Intelephense type hints in templates and snippets.
Version 1.1.3
- Match blueprints stored directly in
site/blueprints, preventing generic SchemaStore associations such as Ansible from being selected forsite.yml - Additional schema fixes
Version 1.1.2
Allow unknown plugin field and section types without weakening validation for Kirby core types
Version 1.1.1
Fix broken schema file names
Version 1.1.0
- Bundle Kirby 4 and 5 blueprint schemas from Bnomei
- Detect installed Kirby major version from Composer metadata
- Configure Kirby schemas for Nova
Version 1.0
Initial release, supports Kirby version 5.5.2
License
MIT License
Copyright (c) 2026 Scott Boms
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.