Files
Marcos Paulo eb1245bd20
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
fix: tab switch freeze (unlinked scan off the UI thread); assistant: vault MCP wiring, preamble, wrapping choices, presets; 23 grammars incl. Twig; Tasks query, Templater include, icon picker
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 13:36:33 -03:00

57 lines
2.0 KiB
YAML

%YAML 1.2
---
# NotesCraft's own Swift grammar. Original work written for this project; not copied
# from any other grammar. Regexes stay linear: no nested quantifiers, so nothing backtracks far.
# Strings end at their line unless the language allows multi-line ones.
name: Swift
file_extensions: [swift]
scope: source.swift
contexts:
main:
- match: '/\*'
scope: punctuation.definition.comment.begin
push: block0
- match: '//.*'
scope: comment.line
- match: '[@#]\w+'
scope: entity.other.attribute-name
- match: '"""'
scope: punctuation.definition.string.begin
push: str-tdq
- match: '"'
scope: punctuation.definition.string.begin
push: str-dq
- match: '\b(?:actor|any|as|associatedtype|async|await|break|case|catch|class|continue|default|defer|deinit|do|else|enum|extension|fallthrough|fileprivate|for|func|guard|if|import|in|indirect|init|inout|internal|is|lazy|let|mutating|nonmutating|open|operator|override|precedencegroup|private|protocol|public|repeat|required|rethrows|return|some|static|struct|subscript|switch|throw|throws|try|typealias|var|weak|where|while)\b'
scope: keyword.control
- match: '\b(?:true|false|nil|self|Self|super)\b'
scope: constant.language
- match: '\b(?:0[xX][0-9a-fA-F_]+|0[bB][01_]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[eE][+-]?\d+)?)\b'
scope: constant.numeric
- match: '\b[A-Za-z_]\w*(?=\s*\()'
scope: entity.name.function
- match: '\b[A-Z][A-Za-z0-9_]*\b'
scope: entity.name.type
- match: '[-+*/%=<>!&|^~?:]+'
scope: keyword.operator
block0:
- meta_scope: comment.block
- match: '\*/'
pop: true
str-tdq:
- meta_scope: string.quoted.triple
- match: '\\.'
scope: constant.character.escape
- match: '"""'
scope: punctuation.definition.string.end
pop: true
str-dq:
- meta_scope: string.quoted.double
- match: '\\.'
scope: constant.character.escape
- match: '"'
scope: punctuation.definition.string.end
pop: true
- match: '(?=\n)'
pop: true