Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 38 additions & 14 deletions devicetree.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,16 @@ patterns:
name: support.constant.file-version.devicetree
match: ^/dts-[a-z0-9]*/;$

- comment: 'Memory Reservation'
name: memory-reservation.property-definition.devicetree
match: ^(/memreserve/)\s+([\dx]+)\s+([\dx]+)\s*;$
captures:
'1': { name: keyword.standard.devicetree }
'2': { name: constant.numeric.memory-reservation.devicetree }
'3': { name: constant.numeric.memory-reservation.devicetree }

- name: keyword.standard.devicetree
match: \#include (.*)
match: (\#include|/include/)\s+(".*")
captures:
'1': { name: string.quoted.double.devicetree }

Expand All @@ -80,7 +88,7 @@ patterns:

- comment: 'Devicetree Node, page 43'
name: node.devicetree
match: \b(?:([A-Za-z0-9]*):\s)?([A-Za-z0-9\_-]*)(\@)?([A-Za-z0-9\_-]*)\s*\{
match: \b(?:([A-Za-z0-9\_]*):\s)?([A-Za-z0-9\_-]*)(\@)?([A-Za-z0-9\_-]*)\s*\{
captures:
'1': { name: storage.type.label.node.devicetree }
'2': { name: entity.name.type.node-name.node.devicetree }
Expand All @@ -89,22 +97,38 @@ patterns:

- comment: 'Property Definition'
name: property-definition.devicetree
begin: ((compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)|[\w,-]*)\s=
beginCaptures:
'1': { name: variable.property-name.devicetree }
'2': { name: variable.language.devicetree }
end: \;
patterns:
- include: '#quote'
- include: '#macro-def'
- include: '#numeric'
- name: interrupt.property-definition.devicetree
begin: ^\s*(interrupts|interrupt-parent|interrupts-extended|\#interrupt-cells|interrupt-map|interrupt-map-mask)\s*=
beginCaptures:
'1': { name: variable.language.devicetree }
end: \;
patterns:
- include: '#quote'
- include: '#macro-def'
- include: '#numeric'
- name: default.property-definition.devicetree
begin: ^\s*((compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)|[\w,-]*)\s*=
beginCaptures:
'1': { name: variable.property-definition.devicetree }
'2': { name: variable.language.devicetree }
end: \;
patterns:
- include: '#quote'
- include: '#macro-def'
- include: '#numeric'

- comment: 'This is for property definitions with empty value. Example: ranges;'
name: empty.property-defintion.devicetree
match: ((compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)|[\w,-]*)\;
captures:
'1': { name: variable.property-name.devicetree }
'2': { name: variable.language.devicetree }
patterns:
- name: default.empty.property-defintion.devicetree
match: ^\s*(compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)\;
captures:
'1': { name: variable.language.devicetree }
- name: default.empty.property-defintion.devicetree
match: ^\s*(interrupt-controller)\;
captures:
'1': { name: variable.language.devicetree }

repository:
numeric:
Expand Down
160 changes: 120 additions & 40 deletions devicetree.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,32 @@
<key>name</key>
<string>support.constant.file-version.devicetree</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.standard.devicetree</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>constant.numeric.memory-reservation.devicetree</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.numeric.memory-reservation.devicetree</string>
</dict>
</dict>
<key>comment</key>
<string>Memory Reservation</string>
<key>match</key>
<string>^(/memreserve/)\s+([\dx]+)\s+([\dx]+)\s*;$</string>
<key>name</key>
<string>memory-reservation.property-definition.devicetree</string>
</dict>
<dict>
<key>captures</key>
<dict>
Expand All @@ -57,7 +83,7 @@
</dict>
</dict>
<key>match</key>
<string>\#include (.*)</string>
<string>(\#include|/include/)\s+(".*")</string>
<key>name</key>
<string>keyword.standard.devicetree</string>
</dict>
Expand Down Expand Up @@ -107,68 +133,122 @@
<key>comment</key>
<string>Devicetree Node, page 43</string>
<key>match</key>
<string>\b(?:([A-Za-z0-9]*):\s)?([A-Za-z0-9\_-]*)(\@)?([A-Za-z0-9\_-]*)\s*\{</string>
<string>\b(?:([A-Za-z0-9\_]*):\s)?([A-Za-z0-9\_-]*)(\@)?([A-Za-z0-9\_-]*)\s*\{</string>
<key>name</key>
<string>node.devicetree</string>
</dict>
<dict>
<key>begin</key>
<string>((compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)|[\w,-]*)\s=</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.property-name.devicetree</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.language.devicetree</string>
</dict>
</dict>
<key>comment</key>
<string>Property Definition</string>
<key>end</key>
<string>\;</string>
<key>name</key>
<string>property-definition.devicetree</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#quote</string>
</dict>
<dict>
<key>include</key>
<string>#macro-def</string>
<key>begin</key>
<string>^\s*(interrupts|interrupt-parent|interrupts-extended|\#interrupt-cells|interrupt-map|interrupt-map-mask)\s*=</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.language.devicetree</string>
</dict>
</dict>
<key>end</key>
<string>\;</string>
<key>name</key>
<string>interrupt.property-definition.devicetree</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#quote</string>
</dict>
<dict>
<key>include</key>
<string>#macro-def</string>
</dict>
<dict>
<key>include</key>
<string>#numeric</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#numeric</string>
<key>begin</key>
<string>^\s*((compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)|[\w,-]*)\s*=</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.property-definition.devicetree</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.language.devicetree</string>
</dict>
</dict>
<key>end</key>
<string>\;</string>
<key>name</key>
<string>default.property-definition.devicetree</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#quote</string>
</dict>
<dict>
<key>include</key>
<string>#macro-def</string>
</dict>
<dict>
<key>include</key>
<string>#numeric</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<key>comment</key>
<string>This is for property definitions with empty value. Example: ranges;</string>
<key>name</key>
<string>empty.property-defintion.devicetree</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.language.devicetree</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)\;</string>
<key>name</key>
<string>variable.property-name.devicetree</string>
<string>default.empty.property-defintion.devicetree</string>
</dict>
<key>2</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.language.devicetree</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(interrupt-controller)\;</string>
<key>name</key>
<string>variable.language.devicetree</string>
<string>default.empty.property-defintion.devicetree</string>
</dict>
</dict>
<key>comment</key>
<string>This is for property definitions with empty value. Example: ranges;</string>
<key>match</key>
<string>((compatible|model|phandle|status|\#address-cells|\#size-cells|reg|virtual-reg|ranges|dma-ranges|device_type)|[\w,-]*)\;</string>
<key>name</key>
<string>empty.property-defintion.devicetree</string>
</array>
</dict>
</array>
<key>repository</key>
Expand Down