Claude Code Plugins

Community-maintained marketplace

Feedback
10
0

Provides NEON format syntax and conventions. Use when working with .neon files, Nette configuration, or NEON data structures.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name neon-format
description Provides NEON format syntax and conventions. Use when working with .neon files, Nette configuration, or NEON data structures.

NEON Format

NEON (Nette Object Notation) is a human-readable data format used for configuration files in Nette. Similar to YAML but with support for entities and tab indentation.

composer require nette/neon

Mappings

Key-value pairs with required space after colon:

street: 742 Evergreen Terrace
city: Springfield
country: USA

Inline notation with braces:

{street: 742 Evergreen Terrace, city: Springfield, country: USA}

Sequences

Indexed arrays with hyphen and space:

- Cat
- Dog
- Goldfish

Inline notation with brackets:

[Cat, Dog, Goldfish]

Nesting

Indentation defines structure:

pets:
	- Cat
	- Dog
cars:
	- Volvo
	- Skoda

Block and inline can be combined:

pets: [Cat, Dog]
cars:
	- Volvo
	- Skoda

Strings

Unquoted, single-quoted, or double-quoted:

- An unquoted string
- 'Single-quoted string'
- "Double-quoted with \t escapes"

Quote strings containing: # " ' , : = - [ ] { } ( )

Double a quote to include it: 'It''s working'

Multiline strings with triple quotes:

'''
	first line
		second line
	third line
'''

Special Values

# Numbers
count: 12
price: 12.3
scientific: +1.2e-34
binary: 0b11010
octal: 0o666
hex: 0x7A

# Null
value: null
empty:

# Booleans
enabled: true
disabled: false
active: yes
inactive: no

# Dates (auto-converted to DateTimeImmutable)
date: 2016-06-03
datetime: 2016-06-03 19:00:00
with_tz: 2016-06-03 19:00:00 +02:00

Entities

Function-like structures for DI configuration:

Column(type: int, nulls: yes)

Chained entities:

Column(type: int) Field(id: 1)

Multiline entity:

Column(
	type: int
	nulls: yes
)

Comments

# This line is ignored
street: 742 Evergreen Terrace  # inline comment

Key Rules

  • Space after : is required
  • Use tabs for indentation
  • Block notation cannot be nested inside inline notation
  • Unquoted strings cannot start/end with spaces or look like numbers/booleans/dates

PHP API

use Nette\Neon\Neon;

encode(mixed $value, bool $blockMode=false, string $indentation="\t"): string

Converts PHP value to NEON. Pass true to $blockMode for multiline output.

Neon::encode($value);       // inline NEON
Neon::encode($value, true); // multiline NEON

decode(string $neon): mixed

Parses NEON string to PHP value. Dates become DateTimeImmutable, entities become Nette\Neon\Entity.

Neon::decode('hello: world'); // ['hello' => 'world']

decodeFile(string $file): mixed

Parses NEON file to PHP value (removes BOM).

Neon::decodeFile('config.neon');

All methods throw Nette\Neon\Exception on error.

Lint Command

Check syntax errors in .neon files:

vendor/bin/neon-lint <path>