// This is a TextMate grammar distributed by `starry-night`. // This grammar is developed at // // and licensed `mit`. // See for more info. /** * @import {Grammar} from '@wooorm/starry-night' */ /** @type {Grammar} */ const grammar = { extensions: ['.slint'], names: ['slint'], patterns: [ {include: '#comment'}, {include: '#import-list'}, {include: '#export-list'}, {include: '#struct'}, {include: '#enum'}, {include: '#global'}, {include: '#component'}, {match: '(?' }, { begin: '(?', patterns: [{include: '#expression'}, {match: '\\s*,\\s*'}] } ] }, 'code-block': { patterns: [ { begin: '\\s*(\\{)', beginCaptures: {1: {name: 'punctuation.brackets.curly.slint'}}, end: '(\\})\\s*', endCaptures: {1: {name: 'punctuation.brackets.curly.slint'}}, patterns: [{include: '#code-block-contents'}] } ] }, 'code-block-contents': { patterns: [ {include: '#comment'}, {include: '#expression'}, { match: '(?)\\s*([a-zA-Z_][a-zA-Z0-9_-]*))?(;|(=>))?', endCaptures: { 1: {name: 'punctuation.brackets.round.slint'}, 3: {name: 'keyword.operator.arrow.skinny.slint'}, 4: {name: 'entity.name.type.return-type.slint'}, 6: {name: 'keyword.operator.arrow.fat.slint'} }, patterns: [ { captures: { 2: {name: 'variable.parameter.function-argument.slint'}, 3: {name: 'entity.name.type.function-argument.slint'} }, match: '\\s*(([a-zA-Z_][a-zA-Z0-9_-]*)\\s*:\\s*)?([a-zA-Z_][a-zA-Z0-9_-]*)\\s*,?\\s*' } ] } ] }, 'function-call': { patterns: [ { begin: '(?))', endCaptures: {2: {name: 'punctuation.arrow.fat-double.slint'}}, patterns: [ { captures: { 1: {name: 'punctuation.brackets.angle.slint'}, 2: {name: 'entity.name.type.property.slint'}, 3: {name: 'punctuation.brackets.angle.slint'} }, match: '(<)([a-zA-Z_][a-zA-Z0-9_-]*)(>)' }, { captures: {1: {name: 'variable.other.property.slint'}}, match: '(?