Packages
Packages copied to clipboard
[Go] can't support go.sum and go.mod syntax Highlighting
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
file_extensions:
- go.mod
scope: go.mod
contexts:
main:
- include: comments
- include: directive
- include: invalid
arguments:
- include: comments
- include: double_quoted_string
- include: raw_quoted_string
- include: operator
- include: semver
- include: unquoted_string
comments:
- match: //
captures:
0: punctuation.definition.comment.go.mod
push:
- meta_scope: comment.line.double-slash.go.mod
- match: $
pop: true
directive:
- match: (\w+)\s*\(
comment: Multi-Line directive
captures:
1: keyword.go.mod
push:
- match: \)
pop: true
- include: arguments
- match: (\w+)\s*(.*)
comment: Single-Line directive
captures:
1: keyword.go.mod
double_quoted_string:
- match: '"'
comment: Interpreted string literals
captures:
0: punctuation.definition.string.begin.go.mod
push:
- meta_scope: string.quoted.double
- match: '"'
captures:
0: punctuation.definition.string.end.go.mod
pop: true
- include: string_escaped_char
- include: string_placeholder
invalid:
- match: .*
comment: invalid
scope: invalid.illegal.unknown.go.mod
operator:
- match: (=>)
scope: operator.go.mod
raw_quoted_string:
- match: '`'
comment: Raw string literals
captures:
0: punctuation.definition.string.begin.go.mod
push:
- meta_scope: string.quoted.raw
- match: '`'
captures:
0: punctuation.definition.string.end.go.mod
pop: true
- include: string_placeholder
semver:
- match: 'v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-z-]+(?:\.[\da-z-]+)*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?'
comment: Semver version strings (v1.2.3)
scope: constant.language.go.mod
string_escaped_char:
- match: '\\([0-7]{3}|[abfnrtv\\''"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})'
scope: constant.character.escape.go.mod
- match: '\\[^0-7xuUabfnrtv\''"]'
scope: invalid.illegal.unknown-escape.go.mod
string_placeholder:
- match: '%(\[\d+\])?([\+#\-0\x20]{,2}((\d+|\*)?(\.?(\d+|\*|(\[\d+\])\*?)?(\[\d+\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]'
scope: constant.other.placeholder.go.mod
unquoted_string:
- match: '([^\s/]|/(?!/))+'
comment: Unquoted string
scope: string.unquoted.go.mod
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
file_extensions:
- go.sum
scope: go.sum
contexts:
main:
- include: checksum
- include: semver
- include: unquoted_string
checksum:
- match: 'h1:([^\s]+)='
comment: Checksum
captures:
semver:
- match: 'v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-z-]+(?:\.[\da-z-]+)*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?'
comment: Semver version strings (v1.2.3)
scope: constant.language.go.sum
unquoted_string:
- match: '[^\s]+'
comment: Unquoted string
scope: string.unquoted.go.sum
Might be good to compare these two as well.
https://github.com/mitranim/sublime-gomod