zyedidia-micro-6a62575/ 0000775 0001750 0001751 00000000000 15125206537 014243 5 ustar nilesh nilesh zyedidia-micro-6a62575/tools/ 0000775 0001750 0001751 00000000000 15125206537 015403 5 ustar nilesh nilesh zyedidia-micro-6a62575/tools/vendor-src.sh 0000775 0001750 0001751 00000000142 15125206537 020021 0 ustar nilesh nilesh cd ../..
tar czf "$1".tar.gz micro
zip -rq "$1".zip micro
mv "$1".tar.gz micro
mv "$1".zip micro
zyedidia-micro-6a62575/tools/update-nightly-tag.sh 0000775 0001750 0001751 00000000506 15125206537 021452 0 ustar nilesh nilesh commitID=$(git rev-parse --short HEAD)
echo "Moving tag"
hub push origin :refs/tags/nightly
git tag -f nightly $commitID
hub push --tags
MESSAGE=$'Nightly build\n\nAutogenerated nightly build of micro'
echo "Creating new release"
hub release create nightly \
--prerelease \
--draft=false \
--message "$MESSAGE."
zyedidia-micro-6a62575/tools/testgen.go 0000664 0001750 0001751 00000013647 15125206537 017416 0 ustar nilesh nilesh //go:build ignore
package main
import (
"fmt"
"log"
"os"
"regexp"
"strings"
"github.com/robertkrimen/otto/ast"
"github.com/robertkrimen/otto/parser"
)
type walker struct {
nodes []ast.Node
}
func (w *walker) Enter(node ast.Node) ast.Visitor {
w.nodes = append(w.nodes, node)
return w
}
func (w *walker) Exit(node ast.Node) {
}
func getAllNodes(node ast.Node) []ast.Node {
w := &walker{}
ast.Walk(w, node)
return w.nodes
}
func getCalls(node ast.Node, name string) []*ast.CallExpression {
nodes := []*ast.CallExpression{}
for _, n := range getAllNodes(node) {
if ce, ok := n.(*ast.CallExpression); ok {
var calleeName string
switch callee := ce.Callee.(type) {
case *ast.Identifier:
calleeName = callee.Name
case *ast.DotExpression:
calleeName = callee.Identifier.Name
default:
continue
}
if calleeName == name {
nodes = append(nodes, ce)
}
}
}
return nodes
}
func getPropertyValue(node ast.Node, key string) ast.Expression {
for _, p := range node.(*ast.ObjectLiteral).Value {
if p.Key == key {
return p.Value
}
}
return nil
}
type operation struct {
startLine int
startColumn int
endLine int
endColumn int
text []string
}
type check struct {
before []string
operations []operation
after []string
}
type test struct {
description string
checks []check
}
func stringSliceToGoSource(slice []string) string {
var b strings.Builder
b.WriteString("[]string{\n")
for _, s := range slice {
b.WriteString(fmt.Sprintf("%#v,\n", s))
}
b.WriteString("}")
return b.String()
}
func testToGoTest(test test, name string) string {
var b strings.Builder
b.WriteString("func Test")
b.WriteString(name)
b.WriteString("(t *testing.T) {\n")
for _, c := range test.checks {
b.WriteString("check(\n")
b.WriteString("t,\n")
b.WriteString(fmt.Sprintf("%v,\n", stringSliceToGoSource(c.before)))
b.WriteString("[]operation{\n")
for _, op := range c.operations {
b.WriteString("operation{\n")
b.WriteString(fmt.Sprintf("start: Loc{%v, %v},\n", op.startColumn, op.startLine))
b.WriteString(fmt.Sprintf("end: Loc{%v, %v},\n", op.endColumn, op.endLine))
b.WriteString(fmt.Sprintf("text: %v,\n", stringSliceToGoSource(op.text)))
b.WriteString("},\n")
}
b.WriteString("},\n")
b.WriteString(fmt.Sprintf("%v,\n", stringSliceToGoSource(c.after)))
b.WriteString(")\n")
}
b.WriteString("}\n")
return b.String()
}
func nodeToStringSlice(node ast.Node) []string {
var result []string
for _, s := range node.(*ast.ArrayLiteral).Value {
result = append(result, s.(*ast.StringLiteral).Value)
}
return result
}
func nodeToStringSlice2(node ast.Node) []string {
var result []string
for _, o := range node.(*ast.ArrayLiteral).Value {
result = append(result, getPropertyValue(o, "text").(*ast.StringLiteral).Value)
}
return result
}
func nodeToInt(node ast.Node) int {
return int(node.(*ast.NumberLiteral).Value.(int64))
}
func getChecks(node ast.Node) []check {
checks := []check{}
for _, ce := range getCalls(node, "testApplyEdits") {
if len(ce.ArgumentList) != 3 {
// Wrong function
continue
}
before := nodeToStringSlice2(ce.ArgumentList[0])
after := nodeToStringSlice2(ce.ArgumentList[2])
var operations []operation
for _, op := range ce.ArgumentList[1].(*ast.ArrayLiteral).Value {
args := getPropertyValue(op, "range").(*ast.NewExpression).ArgumentList
operations = append(operations, operation{
startLine: nodeToInt(args[0]) - 1,
startColumn: nodeToInt(args[1]) - 1,
endLine: nodeToInt(args[2]) - 1,
endColumn: nodeToInt(args[3]) - 1,
text: []string{getPropertyValue(op, "text").(*ast.StringLiteral).Value},
})
}
checks = append(checks, check{before, operations, after})
}
for _, ce := range getCalls(node, "testApplyEditsWithSyncedModels") {
if len(ce.ArgumentList) > 3 && ce.ArgumentList[3].(*ast.BooleanLiteral).Value {
// inputEditsAreInvalid == true
continue
}
before := nodeToStringSlice(ce.ArgumentList[0])
after := nodeToStringSlice(ce.ArgumentList[2])
var operations []operation
for _, op := range getCalls(ce.ArgumentList[1], "editOp") {
operations = append(operations, operation{
startLine: nodeToInt(op.ArgumentList[0]) - 1,
startColumn: nodeToInt(op.ArgumentList[1]) - 1,
endLine: nodeToInt(op.ArgumentList[2]) - 1,
endColumn: nodeToInt(op.ArgumentList[3]) - 1,
text: nodeToStringSlice(op.ArgumentList[4]),
})
}
checks = append(checks, check{before, operations, after})
}
return checks
}
func getTests(node ast.Node) []test {
tests := []test{}
for _, ce := range getCalls(node, "test") {
description := ce.ArgumentList[0].(*ast.StringLiteral).Value
body := ce.ArgumentList[1].(*ast.FunctionLiteral).Body
checks := getChecks(body)
if len(checks) > 0 {
tests = append(tests, test{description, checks})
}
}
return tests
}
func main() {
var tests []test
for _, filename := range os.Args[1:] {
source, err := os.ReadFile(filename)
if err != nil {
log.Fatalln(err)
}
program, err := parser.ParseFile(nil, "", source, parser.IgnoreRegExpErrors)
if err != nil {
log.Fatalln(err)
}
tests = append(tests, getTests(program)...)
}
if len(tests) == 0 {
log.Fatalln("no tests found!")
}
fmt.Println("// This file is generated from VSCode model tests by the testgen tool.")
fmt.Println("// DO NOT EDIT THIS FILE BY HAND; your changes will be overwritten!\n")
fmt.Println("package buffer")
fmt.Println(`import "testing"`)
re := regexp.MustCompile(`[^\w]`)
usedNames := map[string]bool{}
for _, test := range tests {
name := strings.Title(strings.ToLower(test.description))
name = re.ReplaceAllLiteralString(name, "")
if name == "" {
name = "Unnamed"
}
if usedNames[name] {
for i := 2; ; i++ {
newName := fmt.Sprintf("%v_%v", name, i)
if !usedNames[newName] {
name = newName
break
}
}
}
usedNames[name] = true
fmt.Println(testToGoTest(test, name))
}
}
zyedidia-micro-6a62575/tools/remove-nightly-assets.go 0000664 0001750 0001751 00000001416 15125206537 022205 0 ustar nilesh nilesh //go:build ignore
package main
import (
"fmt"
"io"
"net/http"
"os/exec"
"strings"
"github.com/micro-editor/json5"
)
func main() {
resp, err := http.Get("https://api.github.com/repos/zyedidia/micro/releases")
if err != nil {
fmt.Println(err.Error())
return
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
var data any
err = json5.Unmarshal(body, &data)
for _, val := range data.([]any) {
m := val.(map[string]any)
releaseName := m["name"].(string)
assets := m["assets"].([]any)
for _, asset := range assets {
assetInfo := asset.(map[string]any)
url := assetInfo["url"].(string)
if strings.Contains(strings.ToLower(releaseName), "nightly") {
cmd := exec.Command("hub", "api", "-X", "DELETE", url)
cmd.Run()
}
}
}
}
zyedidia-micro-6a62575/tools/release.sh 0000775 0001750 0001751 00000002326 15125206537 017365 0 ustar nilesh nilesh # This script creates releases on Github for micro
# You must have the correct Github access token to run this script
# $1 is the title, $2 is the description
commitID=$(git rev-parse HEAD)
tag="v$1"
echo "Creating tag"
git tag $tag $commitID
hub push --tags
NL=$'\n'
echo "Cross compiling binaries"
./cross-compile.sh $1
mv ../binaries .
echo "Creating new release"
hub release create $tag \
--message "$1${NL}${NL}$2" \
--attach "binaries/micro-$1-osx.tar.gz" \
--attach "binaries/micro-$1-macos-arm64.tar.gz" \
--attach "binaries/micro-$1-linux64.tar.gz" \
--attach "binaries/micro-$1-linux64-static.tar.gz" \
--attach "binaries/micro-$1-amd64.deb" \
--attach "binaries/micro-$1-linux32.tar.gz" \
--attach "binaries/micro-$1-linux-arm.tar.gz" \
--attach "binaries/micro-$1-linux-arm64.tar.gz" \
--attach "binaries/micro-$1-freebsd64.tar.gz" \
--attach "binaries/micro-$1-freebsd32.tar.gz" \
--attach "binaries/micro-$1-openbsd64.tar.gz" \
--attach "binaries/micro-$1-openbsd32.tar.gz" \
--attach "binaries/micro-$1-netbsd64.tar.gz" \
--attach "binaries/micro-$1-netbsd32.tar.gz" \
--attach "binaries/micro-$1-win64.zip" \
--attach "binaries/micro-$1-win32.zip"
zyedidia-micro-6a62575/tools/pre-release.sh 0000775 0001750 0001751 00000002351 15125206537 020147 0 ustar nilesh nilesh # This script creates releases on Github for micro
# You must have the correct Github access token to run this script
# $1 is the title, $2 is the description
commitID=$(git rev-parse HEAD)
tag="v$1"
echo "Creating tag"
git tag $tag $commitID
hub push --tags
echo "Cross compiling binaries"
./cross-compile.sh $1
mv ../binaries .
NL=$'\n'
echo "Creating new release"
hub release create $tag \
--prerelease \
--message "$1${NL}${NL}$2" \
--attach "binaries/micro-$1-osx.tar.gz" \
--attach "binaries/micro-$1-macos-arm64.tar.gz" \
--attach "binaries/micro-$1-linux64.tar.gz" \
--attach "binaries/micro-$1-linux64-static.tar.gz" \
--attach "binaries/micro-$1-amd64.deb" \
--attach "binaries/micro-$1-linux32.tar.gz" \
--attach "binaries/micro-$1-linux-arm.tar.gz" \
--attach "binaries/micro-$1-linux-arm64.tar.gz" \
--attach "binaries/micro-$1-freebsd64.tar.gz" \
--attach "binaries/micro-$1-freebsd32.tar.gz" \
--attach "binaries/micro-$1-openbsd64.tar.gz" \
--attach "binaries/micro-$1-openbsd32.tar.gz" \
--attach "binaries/micro-$1-netbsd64.tar.gz" \
--attach "binaries/micro-$1-netbsd32.tar.gz" \
--attach "binaries/micro-$1-win64.zip" \
--attach "binaries/micro-$1-win32.zip"
zyedidia-micro-6a62575/tools/package-deb.sh 0000775 0001750 0001751 00000000576 15125206537 020075 0 ustar nilesh nilesh command -v fpm > /dev/null && fpm -s dir -t deb -p micro-$1-amd64.deb --name micro --license mit --version $1 --deb-recommends xclip --description "A modern and intuitive terminal-based text editor" --after-install ./assets/packaging/deb/micro.postinst --before-remove ./assets/packaging/deb/micro.prerm ./micro=/usr/bin/micro ./assets/packaging/micro.1=/usr/share/man/man1/micro.1
zyedidia-micro-6a62575/tools/nightly-release.sh 0000775 0001750 0001751 00000002516 15125206537 021042 0 ustar nilesh nilesh # This script updates the nightly release on Github for micro
# Must be run from inside the micro git repository
commitID=$(git rev-parse --short HEAD)
go run remove-nightly-assets.go
echo "Cross compiling binaries"
./cross-compile.sh $1
mv ../binaries .
MESSAGE=$'Nightly build\n\nAutogenerated nightly build of micro'
echo "Updating release"
hub release edit nightly \
--prerelease \
--draft=false \
--message "$MESSAGE (please DISREGARD the creation date of this Github release). Assets uploaded on $(date) for commit $commitID." \
--attach "binaries/micro-$1-osx.tar.gz" \
--attach "binaries/micro-$1-macos-arm64.tar.gz" \
--attach "binaries/micro-$1-linux64.tar.gz" \
--attach "binaries/micro-$1-linux64-static.tar.gz" \
--attach "binaries/micro-$1-amd64.deb" \
--attach "binaries/micro-$1-linux32.tar.gz" \
--attach "binaries/micro-$1-linux-arm.tar.gz" \
--attach "binaries/micro-$1-linux-arm64.tar.gz" \
--attach "binaries/micro-$1-freebsd64.tar.gz" \
--attach "binaries/micro-$1-freebsd32.tar.gz" \
--attach "binaries/micro-$1-openbsd64.tar.gz" \
--attach "binaries/micro-$1-openbsd32.tar.gz" \
--attach "binaries/micro-$1-netbsd64.tar.gz" \
--attach "binaries/micro-$1-netbsd32.tar.gz" \
--attach "binaries/micro-$1-win64.zip" \
--attach "binaries/micro-$1-win32.zip"
zyedidia-micro-6a62575/tools/info-plist.go 0000664 0001750 0001751 00000001722 15125206537 020020 0 ustar nilesh nilesh //go:build ignore
package main
import (
"fmt"
"os"
"runtime"
)
func main() {
if runtime.GOOS != "darwin" {
return
}
if len(os.Args) != 3 {
panic("missing arguments")
}
if os.Args[1] != "darwin" {
return
}
rawInfoPlist := `
CFBundleIdentifier
io.github.micro-editor
CFBundleName
micro
CFBundleInfoDictionaryVersion
6.0
CFBundlePackageType
APPL
CFBundleShortVersionString
` + os.Args[2] + `
`
err := os.WriteFile("/tmp/micro-info.plist", []byte(rawInfoPlist), 0666)
if err != nil {
panic(err)
}
fmt.Println("-linkmode external -extldflags -Wl,-sectcreate,__TEXT,__info_plist,/tmp/micro-info.plist")
}
zyedidia-micro-6a62575/tools/cross-compile.sh 0000775 0001750 0001751 00000005710 15125206537 020524 0 ustar nilesh nilesh #!/bin/sh
set -e
VERSION="$1"
if [ -z "$VERSION" ]; then
VERSION="$(go run tools/build-version.go)"
fi
mkdir -p binaries
mkdir -p micro-$VERSION
cp LICENSE micro-$VERSION
cp README.md micro-$VERSION
cp LICENSE-THIRD-PARTY micro-$VERSION
cp assets/packaging/micro.1 micro-$VERSION
cp assets/packaging/micro.desktop micro-$VERSION
cp assets/micro-logo-mark.svg micro-$VERSION/micro.svg
create_artefact_generic()
{
mv micro micro-$VERSION/
tar -czf micro-$VERSION-$1.tar.gz micro-$VERSION
sha256sum micro-$VERSION-$1.tar.gz > micro-$VERSION-$1.tar.gz.sha
mv micro-$VERSION-$1.* binaries
rm micro-$VERSION/micro
}
create_artefact_windows()
{
mv micro.exe micro-$VERSION/
zip -r -q -T micro-$VERSION-$1.zip micro-$VERSION
sha256sum micro-$VERSION-$1.zip > micro-$VERSION-$1.zip.sha
mv micro-$VERSION-$1.* binaries
rm micro-$VERSION/micro.exe
}
# Mac
echo "OSX 64"
GOOS=darwin GOARCH=amd64 make build
create_artefact_generic "osx"
# Mac ARM64
echo "MacOS ARM64"
GOOS=darwin GOARCH=arm64 make build
create_artefact_generic "macos-arm64"
# Linux
echo "Linux 64"
GOOS=linux GOARCH=amd64 make build
if ./tools/package-deb.sh $VERSION; then
sha256sum micro-$VERSION-amd64.deb > micro-$VERSION-amd64.deb.sha
mv micro-$VERSION-amd64.* binaries
fi
create_artefact_generic "linux64"
echo "Linux 64 fully static (same as linux64)"
# It is kept for the next release only to support...
# https://github.com/benweissmann/getmic.ro/blob/f90870e948afab8be9ec40884050044b59ed5b7c/index.sh#L197-L204
# ...and allow a fluent switch via:
# https://github.com/benweissmann/getmic.ro/pull/40
GOOS=linux GOARCH=amd64 make build
create_artefact_generic "linux64-static"
echo "Linux 32"
GOOS=linux GOARCH=386 make build
create_artefact_generic "linux32"
echo "Linux ARM 32"
GOOS=linux GOARM=6 GOARCH=arm make build
create_artefact_generic "linux-arm"
echo "Linux ARM 64"
GOOS=linux GOARCH=arm64 make build
create_artefact_generic "linux-arm64"
# Solaris
echo "Solaris 64"
GOOS=solaris GOARCH=amd64 make build
create_artefact_generic "solaris64"
# Illumos
echo "Illumos 64"
GOOS=illumos GOARCH=amd64 make build
create_artefact_generic "illumos64"
# NetBSD
echo "NetBSD 64"
GOOS=netbsd GOARCH=amd64 make build
create_artefact_generic "netbsd64"
echo "NetBSD 32"
GOOS=netbsd GOARCH=386 make build
create_artefact_generic "netbsd32"
# OpenBSD
echo "OpenBSD 64"
GOOS=openbsd GOARCH=amd64 make build
create_artefact_generic "openbsd64"
echo "OpenBSD 32"
GOOS=openbsd GOARCH=386 make build
create_artefact_generic "openbsd32"
# FreeBSD
echo "FreeBSD 64"
GOOS=freebsd GOARCH=amd64 make build
create_artefact_generic "freebsd64"
echo "FreeBSD 32"
GOOS=freebsd GOARCH=386 make build
create_artefact_generic "freebsd32"
# Windows
echo "Windows 64"
GOOS=windows GOARCH=amd64 make build
create_artefact_windows "win64"
echo "Windows ARM 64"
GOOS=windows GOARCH=arm64 make build
create_artefact_windows "win-arm64"
echo "Windows 32"
GOOS=windows GOARCH=386 make build
create_artefact_windows "win32"
rm -rf micro-$VERSION
zyedidia-micro-6a62575/tools/compile-linux.sh 0000775 0001750 0001751 00000002462 15125206537 020533 0 ustar nilesh nilesh cd ..
mkdir -p binaries
mkdir -p micro-$1
cp LICENSE micro-$1
cp README.md micro-$1
cp LICENSE-THIRD-PARTY micro-$1
HASH="$(git rev-parse --short HEAD)"
VERSION="$(go run tools/build-version.go)"
DATE="$(go run tools/build-date.go)"
ADDITIONAL_GO_LINKER_FLAGS="$(go run tools/info-plist.go $VERSION)"
echo "Linux 64"
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
tar -czf micro-$1-linux64.tar.gz micro-$1
mv micro-$1-linux64.tar.gz binaries
echo "Linux 32"
GOOS=linux GOARCH=386 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
tar -czf micro-$1-linux32.tar.gz micro-$1
mv micro-$1-linux32.tar.gz binaries
echo "Linux arm 32"
GOOS=linux GOARM=6 GOARCH=arm go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
tar -czf micro-$1-linux-arm.tar.gz micro-$1
mv micro-$1-linux-arm.tar.gz binaries
echo "Linux arm 64"
GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -X main.Version=$1 -X main.CommitHash=$HASH -X 'main.CompileDate=$DATE'" -o micro-$1/micro ./cmd/micro
tar -czf micro-$1-linux-arm64.tar.gz micro-$1
mv micro-$1-linux-arm64.tar.gz binaries
rm -rf micro-$1
zyedidia-micro-6a62575/tools/build-version.go 0000664 0001750 0001751 00000003740 15125206537 020520 0 ustar nilesh nilesh //go:build ignore
package main
import (
"fmt"
"log"
"os/exec"
"strings"
"github.com/blang/semver"
)
func getTag(match ...string) (string, *semver.PRVersion) {
args := append([]string{
"describe", "--tags",
}, match...)
if tag, err := exec.Command("git", args...).Output(); err != nil {
return "", nil
} else {
tagParts := strings.Split(string(tag), "-")
if len(tagParts) == 3 {
ahead, err := semver.NewPRVersion(tagParts[1])
if err == nil {
return tagParts[0], &ahead
}
log.Printf("semver.NewPRVersion(%s): %v", tagParts[1], err)
} else if len(tagParts) == 4 {
ahead, err := semver.NewPRVersion(tagParts[2])
if err == nil {
return tagParts[0] + "-" + tagParts[1], &ahead
}
log.Printf("semver.NewPRVersion(%s): %v", tagParts[2], err)
}
return string(tag), nil
}
}
func main() {
// Find the last vX.X.X Tag and get how many builds we are ahead of it.
versionStr, ahead := getTag("--match", "v*")
version, err := semver.ParseTolerant(versionStr)
if err != nil {
// no version tag found so just return what ever we can find.
log.Printf("semver.ParseTolerant(%s): %v", versionStr, err)
fmt.Println("0.0.0-unknown")
return
}
if ahead == nil {
// Seems that we are going to build a release.
// So the version number should already be correct.
fmt.Println(version.String())
return
}
// Get the tag of the current revision.
tag, _ := getTag("--exact-match")
// If we don't have any tag assume "dev"
if tag == "" || strings.HasPrefix(tag, "nightly") {
tag = "dev"
}
// Get the most likely next version:
if !strings.Contains(version.String(), "rc") {
version.Patch = version.Patch + 1
}
if pr, err := semver.NewPRVersion(tag); err == nil {
// append the tag as pre-release name
version.Pre = append(version.Pre, pr)
} else {
log.Printf("semver.NewPRVersion(%s): %v", tag, err)
}
// append how many commits we are ahead of the last release
version.Pre = append(version.Pre, *ahead)
fmt.Println(version.String())
}
zyedidia-micro-6a62575/tools/build-date.go 0000664 0001750 0001751 00000000665 15125206537 017753 0 ustar nilesh nilesh //go:build ignore
package main
import (
"fmt"
"os"
"strconv"
"time"
)
func main() {
var buildTime time.Time
epoch := os.Getenv("SOURCE_DATE_EPOCH")
if epoch != "" {
i, err := strconv.Atoi(epoch)
if err != nil {
fmt.Errorf("SOURCE_DATE_EPOCH is not a valid integer")
os.Exit(1)
}
buildTime = time.Unix(int64(i), 0)
} else {
buildTime = time.Now().Local()
}
fmt.Println(buildTime.Format("January 02, 2006"))
}
zyedidia-micro-6a62575/snapcraft.yaml 0000664 0001750 0001751 00000001544 15125206537 017114 0 ustar nilesh nilesh name: micro
summary: A modern and intuitive terminal-based text editor
description: |
Micro is a terminal-based text editor that aims to be easy to use and
intuitive, while also taking advantage of the full capabilities of modern
terminals.
confinement: classic
adopt-info: micro
base: core20
apps:
micro:
command: bin/micro
parts:
micro:
source: .
source-type: git
plugin: go
build-packages: [make]
build-attributes: [no-patchelf]
override-pull: |
snapcraftctl pull
version="$(go run $SNAPCRAFT_PART_SRC/tools/build-version.go)"
[ -n "$(echo $version | grep "dev")" ] && grade=devel || grade=stable
snapcraftctl set-version "$version"
snapcraftctl set-grade "$grade"
override-build: |
make build-tags
mkdir $SNAPCRAFT_PART_INSTALL/bin
mv ./micro $SNAPCRAFT_PART_INSTALL/bin/
zyedidia-micro-6a62575/runtime/ 0000775 0001750 0001751 00000000000 15125206537 015726 5 ustar nilesh nilesh zyedidia-micro-6a62575/runtime/syntax/ 0000775 0001750 0001751 00000000000 15125206537 017254 5 ustar nilesh nilesh zyedidia-micro-6a62575/runtime/syntax/zsh.yaml 0000664 0001750 0001751 00000004122 15125206537 020743 0 ustar nilesh nilesh filetype: zsh
detect:
filename: "(\\.zsh$|\\.?(zshenv|zprofile|zshrc|zlogin|zlogout)$)"
header: "^#!.*/(env +)?zsh( |$)"
rules:
## Numbers
- constant.number: "\\b[0-9]+\\b"
## Conditionals and control flow
- statement: "\\b(always|break|bye|case|continue|disown|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\\b"
- statement: "(\\{|\\}|\\(|\\)|\\;|\\]|\\[|`|\\\\|\\$|<|>|!|=|&|\\|)"
## Conditional flags
- special: "-[Ldefgruwx]\\b"
- special: "-(eq|ne|gt|lt|ge|le|s|n|z)\\b"
## Bash-inherited
- statement: "\\b((un)?alias|bindkey|builtin|cd|declare|eval|exec|export|jobs|let|popd|pushd|set|source|typeset|umask|unset)\\b"
## ZSH-specific
- type: "\\b(add-zsh-hook|autoload|chdir|compinit|dirs|(dis|en)able|echotc|emulate|print|prompt(init)?|(un)?setopt|zle|zmodload|zstyle|whence)\\b"
## Common linux commands
- statement: "\\b((g|ig)?awk|find|\\w{0,4}grep|kill|killall|\\w{0,4}less|make|pkill|sed|tar)\\b"
## Coreutils commands
- statement: "\\b(base64|basename|cat|chcon|chgrp|chmod|chown|chroot|cksum|comm|cp|csplit|cut|date|dd|df|dir|dircolors|dirname|du|echo|env|expand|expr|factor|false|fmt|fold|head|hostid|id|install|join|link|ln|logname|ls|md5sum|mkdir|mkfifo|mknod|mktemp|mv|nice|nl|nohup|nproc|numfmt|od|paste|pathchk|pinky|pr|printenv|printf|ptx|pwd|readlink|realpath|rm|rmdir|runcon|seq|(sha1|sha224|sha256|sha384|sha512)sum|shred|shuf|sleep|sort|split|stat|stdbuf|stty|sum|sync|tac|tail|tee|test|timeout|touch|tr|true|truncate|tsort|tty|uname|unexpand|uniq|unlink|users|vdir|wc|who|whoami|yes)\\b"
## Function definition
- identifier: "^\\s+(function\\s+)[0-9A-Z_]+\\s+\\(\\)" # (i)
## Variables
- identifier: "\\$\\{?[0-9A-Z_!@#$*?-]+\\}?" #(i)
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
rules: []
- comment:
start: "(^|\\s)#"
end: "$"
rules: []
zyedidia-micro-6a62575/runtime/syntax/zscript.yaml 0000664 0001750 0001751 00000004663 15125206537 021647 0 ustar nilesh nilesh filetype: zscript
# Loosely based on the csharp.yaml definition
# (?i) on everything because ZScript isn't case sensitive
detect:
filename: "(?i)\\.z(c|sc)$"
rules:
# ZScript only has one preprocessor directive and a required engine version declaration
- preproc: "(?i)#include"
- preproc: "(?i)version"
# State labels ("goto" word overridden by state logic rule below)
- symbol.tag: "(?i)[a-z0-9.]+:"
- symbol.tag: "(?i)goto [a-z0-9]+[\\+0-9]*"
# Classes
- identifier.class: "(?i)class +[a-z0-9_]+ *((:) +[a-z0-9.]+)?"
# Functions (open paren overridden by symbol.brackets rule because perl regex apparently doesn't support postive lookahead)
- identifier: "(?i)[\\.]*[a-z0-9_]+[ ]*[(]+"
# Variable types
- type: "(?i)\\b(actor|object|vector2|vector3|name|string|color|sound|void|double|bool|int|float|float64|uint8|uint16|uint|int8|int16|TextureID|SpriteID|Array|voidptr|short|action|state|statelabel)\\b"
# Keywords
- statement: "(?i)\\b(class|default|private|static|native|return|if|else|for|while|do|deprecated|null|readonly|true|false|struct|extend|clearscope|vararg|ui|play|virtual|virtualscope|meta|Property|in|out|states|override|super|is|let|const|replaces|protected|self|abstract|enum|switch|case)\\b"
# State logic keywords
- special: "(?i)\\b(goto|loop|stop|break|continue|fail)\\b"
# Symbols
- symbol.operator: "[\\-+/*=<>?:!~%&|]"
- symbol.brackets: "[(){}]|\\[|\\]"
# Constants
- constant.bool: "(?i)(\\b(true|false)\\b|NULL)"
- constant.number: "(?i)\\b([0-9][.]*[0-9]*)+?\\b"
- constant.number: "(?i)\\b(0x[A-Fa-f0-9_]+)?\\b"
- constant.number: "(?i)\\b(0b[0-1_]+)[FL]?\\b"
#- constant.number: "(?i)\\b(([0-9][.]*[0-9]*)+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\\b"
# Strings
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\([btnfr]|'|\\\"|\\\\)"
- constant.specialChar: "\\\\u[A-Fa-f0-9]{4}"
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\([btnfr]|'|\\\"|\\\\)"
- constant.specialChar: "\\\\u[A-Fa-f0-9]{4}"
# Comments
- comment:
start: "//"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/zig.yaml 0000664 0001750 0001751 00000003347 15125206537 020740 0 ustar nilesh nilesh filetype: zig
detect:
filename: "\\.z(ig|on)$"
rules:
# Reserved words
- statement: "\\b(addrspace|align|allowzero|and|asm|async|await|break|callconv|catch|comptime|const|continue|defer|else|errdefer|error|export|extern|fn|for|if|inline|noalias|noinline|nosuspend|or|orelse|packed|pub|resume|return|linksection|suspend|switch|test|threadlocal|try|unreachable|usingnamespace|var|volatile|while)\\b"
# builtin functions
- special: "@[a-zA-Z_]+"
# Primitive Types
- type: "\\b(anyframe|anytype|anyerror|anyopaque|bool|comptime_int|comptime_float|enum|f(16|32|64|80|128)|i(8|16|32|64|128)|isize|noreturn|opaque|struct|type|union|u(8|16|32|64|128)|usize|void)\\b"
- type: "\\b(c_u?(short|int|long(long)?)|c_longdouble|c_void)\\b"
# Operators
- symbol.operator: "[-!|=;%.+^*:&?<>~]"
# Parenthesis
- symbol.brackets: "[(){}]|\\[|\\]"
# Constants
- constant: "\\b(null|undefined)\\b"
- constant.number: "\\b(0b[01_]+|0o[0-7_]+|[0-9_]+|0x[a-fA-F0-9_]+)\\b"
- constant.bool: "\\b(true|false)\\b"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\([nrt\\\\'\"]|x[a-fA-F0-9]{2}|u{[a-fA-F0-9]+})"
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- error: "..+"
- constant.specialChar: "\\\\([nrt\\\\'\"]|x[a-fA-F0-9]{2}|u{[a-fA-F0-9]+})"
- constant.string:
start: "\\\\\\\\"
end: "$"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\([nrt\\\\'\"]|x[a-fA-F0-9]{2}|u{[a-fA-F0-9]+})"
- comment:
start: "//"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/yum.yaml 0000664 0001750 0001751 00000000533 15125206537 020753 0 ustar nilesh nilesh filetype: yum
detect:
filename: "\\.repo$|yum.*\\.conf$"
rules:
- identifier: "^[[:space:]]*[^=]*="
- constant.specialChar: "^[[:space:]]*\\[.*\\]$"
- statement: "\\$(releasever|arch|basearch|uuid|YUM[0-9])"
- comment: "(^|[[:space:]])#([^{].*)?$"
- indent-char.whitespace: "[[:space:]]+$"
- indent-char: " + +| + +"
zyedidia-micro-6a62575/runtime/syntax/yaml.yaml 0000664 0001750 0001751 00000001553 15125206537 021106 0 ustar nilesh nilesh filetype: yaml
detect:
filename: "\\.ya?ml$"
header: "%YAML"
rules:
- type: "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) "
- constant: "\\b(YES|yes|Y|y|ON|on|TRUE|True|true|NO|no|N|n|OFF|off|FALSE|False|false)\\b"
- statement: "(:[[:space:]]|\\[|\\]|:[[:space:]]+[|>]|^[[:space:]]*- )"
- identifier: "[[:space:]][\\*&][A-Za-z0-9]+"
- type: "[-.\\w]+:"
- statement: ":"
- special: "(^---|^\\.\\.\\.|^%YAML|^%TAG)"
- constant.string:
start: "(^| )\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "(^| )'"
end: "'"
skip: "(\\\\.)|('')"
rules:
- constant.specialChar: "\\\\."
- comment:
start: "#"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/xresources.yaml 0000664 0001750 0001751 00000000602 15125206537 022340 0 ustar nilesh nilesh filetype: xresources
detect:
filename: "X(defaults|resources)$"
rules:
- special: "^[[:alnum:]]+\\*"
- identifier.var: "\\*[[:alnum:]]+\\:"
- constant.number: "\\b[0-9]+\\b"
- symbol.operator: "[*:=]"
- constant.bool: "\\b(true|false)\\b"
- comment: "(^|[[:space:]])!([^{].*)?$"
- indent-char.whitespace: "[[:space:]]+$"
- indent-char: " + +| + +"
zyedidia-micro-6a62575/runtime/syntax/xml.yaml 0000664 0001750 0001751 00000001465 15125206537 020746 0 ustar nilesh nilesh filetype: xml
detect:
filename: "\\.(xml|sgml?|rng|svg|plist)$"
header: "<\\?xml.*\\?>"
rules:
- preproc:
start: ""
rules: []
- comment:
start: ""
rules: []
- symbol.tag:
start: "<\\??"
end: "\\??>"
rules:
- identifier:
start: " "
end: "="
rules: []
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
zyedidia-micro-6a62575/runtime/syntax/vue.yaml 0000664 0001750 0001751 00000007251 15125206537 020744 0 ustar nilesh nilesh filetype: vue
detect:
filename: "\\.vue$"
rules:
- default:
start: ""
end: ""
limit-group: symbol.tag
rules:
- error: "<[^!].*?>"
- symbol.tag: "(?i)<[/]?(a|a(bbr|ddress|rea|rticle|side|udio)|b|b(ase|d(i|o)|lockquote|r|utton)|ca(nvas|ption)|center|cite|co(de|l|lgroup)|d(ata|atalist|d|el|etails|fn|ialog|l|t)|em|embed|fieldset|fig(caption|ure)|form|iframe|h[1-6]|hr|i|img|in(put|s)|kbd|keygen|label|legend|li|link|ma(in|p|rk)|menu|menuitem|met(a|er)|nav|noscript|o(bject|l|pt(group|ion)|utput)|p|param|picture|pre|progress|q|r(p|t|uby)|s|samp|se(ction|lect)|svg|small|source|span|strong|su(b|p|mmary)|textarea|time|track|u|ul|var|video|wbr)( .*)*?>"
- symbol.tag.extended: "(?i)<[/]?(body|div|html|head(er)?|footer|title|table|t(body|d|h(ead)?|r|foot))( .*)*?>"
- preproc: "(?i)<[/]?(script|style)( .*)*?>"
- special: "&[^;[[:space:]]]*;"
- identifier: "(alt|bgcolor|class|height|href|id|label|longdesc|name|on(click|focus|load|mouseover)|placeholder|size|span|src|style|target|type|value|width)="
- symbol: "[:=]"
- constant.string: "\"[^\"]*\""
- constant.number: "(?i)#[0-9a-fA-F]{6,6}"
- symbol.tag: "<|>"
- constant.string.url: "(ftp(s)?|http(s)?|git|chrome)://[^ ]+"
- comment: ""
#- preproc: ""
- comment.block:
start: ""
rules: []
# Bootstrap
- symbol.tag.extended: "(?i)<[/]?(b-alert|b-aspect|b-avatar|b-badge|b-icon|b-breadcrumb|b-button-group|b-button-toolbar|b-button|b-calendar|b-card-text|b-card-input|b-card|b-carousel-slide|b-carousel|b-collapse|b-dropdown|b-dropdown-item|b-dropdown-divider|b-embed|b-form-checkbox-group|b-form-checkbox|b-form-datepicker|b-form-file|b-form-group|b-form-input|b-form-radio|b-form-rating|b-form-select|b-form-spinbutton|b-form-tags|b-form-textarea|b-form|b-form-timepicker|b-img-lazy|b-img|b-input-group|b-jumbotron|b-input|b-container|b-row|b-col|b-link|b-list-group|b-list-group-item|b-media|b-modal|b-nav|b-nav-item|b-nav-item-dropdown|b-nav-text|b-nav-form|b-navbar|b-navbar-brand|b-navbar-toggle|b-navbar-nav|b-overlay|b-pagination|b-pagination-nav|b-popover|b-progress|b-progress-bar|b-sidebar|b-skeleton-wrapper|b-skeleton|b-spinner|b-table|b-table-lite|b-table-simple|b-tabs|b-tab|b-time|b-toast|b-tooltip)\\b"
- identifier: "(variant|title|show|shadow|icon|align-h|align-v|label-for|@submit|tag|img-alt|img-src|data-toggle|data-target|aria-controls|aria-expanded|aria-label|aria-disabled|tabindex|:interval|background|img-width|img-height|@sliding-start|@sliding-end|cols|header|@reset)="
- symbol: "[:=]"
# Vue
- symbol.tag.extended: "(?i)<[/]?(component|transition|transition-group|keep-alive|slot)\\b"
- identifier: "(v-text|v-html|v-show|v-if|v-else|v-else-if|v-for|v-on|v-bind|v-model|v-slot|v-pre|v-cloak|v-once|key|ref|is|@click)="
- symbol: "[:=]"
# Vue-router
- symbol.tag.extended: "(?i)<[/]?(router-link|router-view)\\b"
- identifier: "(to|v-slot)="
- symbol: "[:=]"
- default:
start: ""
limit-group: symbol.tag
rules:
- include: "javascript"
- default:
start: ""
rules:
- include: "typescript"
- default:
start: ""
end: ""
limit-group: symbol.tag
rules:
- include: "css"
zyedidia-micro-6a62575/runtime/syntax/vi.yaml 0000664 0001750 0001751 00000001376 15125206537 020565 0 ustar nilesh nilesh filetype: vi
detect:
filename: "(^|/|\\.)(ex|vim)rc$|\\.vim"
rules:
- identifier: "[A-Za-z_][A-Za-z0-9_]*[(]+[A-Za-z0-9_:.,\\s]*[)]+"
- special: "[()]+"
- statement: "\\b([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\\b"
- statement: "\\b(snor|nun|nm|set|if|endif|let|unlet|source)\\b"
- statement: "[!&=?]"
- constant.number: "\\b[0-9]+\\b"
- comment:
start: "(^\"|[ \t]+\" |[ \t]+\"$)"
end: "$"
rules: []
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
zyedidia-micro-6a62575/runtime/syntax/vhdl.yaml 0000664 0001750 0001751 00000004547 15125206537 021107 0 ustar nilesh nilesh filetype: vhdl
detect:
filename: "\\.vhdl?$"
rules:
- type: "(?i)\\b(string|integer|natural|positive|(un)?signed|std_u?logic(_vector)?|bit(_vector)?|boolean|u?x01z?|array|range)\\b"
- identifier: "(?i)library[[:space:]]+[a-zA-Z_0-9]+"
- identifier: "(?i)use[[:space:]]+[a-zA-Z_0-9\\.]+"
- identifier: "(?i)component[[:space:]]+[a-zA-Z_0-9]+"
- identifier: "(?i)(architecture|configuration)[[:space:]]+[a-zA-Z_0-9]+[[:space:]]+of[[:space:]]+[a-zA-Z_0-9]+"
- identifier: "(?i)(entity|package)[[:space:]]+[a-zA-Z_0-9]+[[:space:]]+is"
- identifier: "(?i)end[[:space:]]+((architecture|entity|component|process|package|generate)[[:space:]]+)?[a-zA-Z_0-9]+"
- statement: "(?i)\\b(abs|access|after|alias|all|and|architecture|assert|attribute)\\b"
- statement: "(?i)\\b(begin|block|body|buffer|bus|case|component|configuration|constant)\\b"
- statement: "(?i)\\b(disconnect|downto|else|elsif|end|entity|exit)\\b"
- statement: "(?i)\\b(file|for|function|generate|generic|guarded)\\b"
- statement: "(?i)\\b(if|impure|in|inertial|inout|is)\\b"
- statement: "(?i)\\b(label|library|linkage|literal|loop|map|mod)\\b"
- statement: "(?i)\\b(nand|new|next|nor|not|null|of|on|open|or|others|out)\\b"
- statement: "(?i)\\b(package|port|postponed|procedure|process|pure)\\b"
- statement: "(?i)\\b(range|record|register|reject|rem|report|return|rol|ror)\\b"
- statement: "(?i)\\b(select|severity|shared|signal|sla|sll|sra|srl|subtype)\\b"
- statement: "(?i)\\b(then|to|transport|type|unaffected|units|until|use)\\b"
- statement: "(?i)\\b(variable|wait|when|while|with|xnor|xor)\\b"
- statement: "(?i)'(base|left|right|high|low|pos|val|succ|pred|leftof|rightof|image|(last_)?value)"
- statement: "(?i)'((reverse_)?range|length|ascending|event|stable)"
- statement: "(?i)'(simple|path|instance)_name"
- statement: "(?i)\\b(std_match|(rising|falling)_edge|is_x)\\b"
- statement: "(?i)\\bto_(unsigned|signed|integer|u?x01z?|stdu?logic(vector)?)\\b"
- symbol.operator: "(\\+|-|\\*|/|&|<|>|=|\\.|:)"
- constant.number: "(?i)'([0-1]|u|x|z|w|l|h|-)'|[box]?\"([0-1a-fA-F]|u|x|z|w|l|h|-)+\""
- constant.number: "(?i)\\b[0-9\\._]+(e[\\-]?[0-9]+)?( ?[fpnum]?s)?\\b"
- constant.bool: "(?i)\\b(true|false)\\b"
- constant: "(?i)\\b(note|warning|error|failure)\\b"
- constant.string: "\"[^\"]*\""
- comment: "--.*"
zyedidia-micro-6a62575/runtime/syntax/verilog.yaml 0000664 0001750 0001751 00000005701 15125206537 021612 0 ustar nilesh nilesh filetype: verilog
detect:
filename: "\\.(v|vh|sv|svh)$"
rules:
- preproc: "\\b(module|package|program|endmodule|endpackage|endprogram)\\b"
- type.keyword: "\\b(task|interface|class|endtask|endinterface|endclass)\\b"
# builtin functions like $display
- special: "\\$[0-9A-Za-z_]+"
# Verilog keywords
- statement: "\\b(always|and|assign|automatic|begin|buf|bufif0|bufif1|case|casex|casez|cell|cmos|config)\\b"
- statement: "\\b(deassign|default|defparam|design|disable|edge|else|end|endcase|endconfig|endfunction|endgenerate)\\b"
- statement: "\\b(endprimitive|endspecify|endtable|event|for|force|forever|fork|function|generate)\\b"
- statement: "\\b(genvar|highz0|highz1|if|iff|ifnone|incdir|include|initial|input|instance|join)\\b"
- statement: "\\b(large|liblist|library|localparam|macromodule|medium|nand|negedge|nmos|nor|noshowcancelled)\\b"
- statement: "\\b(not|notif0|notif1|null|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup)\\b"
- statement: "\\b(pulsestyle_onevent|pulsestyle_ondetect|rcmos|realtime|reg|release|repeat|rnmos|rpmos|rtran)\\b"
- statement: "\\b(rtranif0|rtranif1|scalared|showcancelled|small|specify|specparam|strong0|strong1|supply0)\\b"
- statement: "\\b(supply1|table|time|tran|tranif0|tranif1|tri0|tri1|triand|trior|trireg|use|uwire)\\b"
- statement: "\\b(vectored|wait|wand|weak0|weak1|while|wor|xnor|xor)\\b"
# SystemVerilog keywords
- statement: "\\b(alias|always_comb|always_ff|always_latch|assert|assume|before|bind|bins|binsof|break)\\b"
- statement: "\\b(chandle|clocking|const|constraint|context|continue|cover|covergroup|coverpoint|cross|dist|do)\\b"
- statement: "\\b(endclocking|endgroup|endproperty|endsequence|enum)\\b"
- statement: "\\b(expect|export|extends|extern|final|first_match|foreach|forkjoin|ignore_bins|illegal_bins|import)\\b"
- statement: "\\b(inside|intersect|join_any|join_none|local|longint|matches|modport|new)\\b"
- statement: "\\b(packed|priority|property|protected|pure|rand|randc|randcase|randsequence|ref|return)\\b"
- statement: "\\b(sequence|solve|static|struct|super|tagged|this|throughout|timeprecision)\\b"
- statement: "\\b(timeunit|type|typedef|union|unique|virtual|wait_order|wildcard|with|within)\\b"
# types
- type.keyword: "\\b(int|integer|logic|wire|tri|unsigned|signed|inout|var|shortint|shortreal|real|void|string|bit|byte)\\b"
# constants
- constant.number: "\\b[0-9]+\\b"
- constant.number: "\\b'[su]?[dboh][0-9xzXZa-fA-F]+\\b"
# .asdf(...) argument syntax
- special: "\\.((\\*)|([A-Za-z][A-Za-z0-9_]*))"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- comment:
start: "//"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/vala.yaml 0000664 0001750 0001751 00000001707 15125206537 021070 0 ustar nilesh nilesh filetype: vala
detect:
filename: "\\.vala$"
rules:
- type: "\\b(float|double|bool|u?char|u?int(8|16|32|64)?|u?short|u?long|void|s?size_t|unichar)\\b"
- identifier.class: "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]"
- statement: "\\b(for|if|while|do|else|case|default|switch|try|throw|catch)\\b"
- statement: "\\b(inline|typedef|struct|enum|union|extern|static|const)\\b"
- statement: "\\b(operator|new|delete|return|null)\\b"
- statement: "\\b(class|override|private|public|signal|this|weak)\\b"
- special: "\\b(goto|break|continue)\\b"
- constant.bool: "\\b(true|false)\\b"
- constant.number: "\\b([0-9]+)\\b"
- symbol.operator: "[\\-+/*=<>?:!~%&|]|->"
- constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- comment: "(^|[[:space:]])//.*"
- comment:
start: "/\\*"
end: "\\*/"
rules: []
- todo: "TODO:?"
- indent-char.whitespace: "[[:space:]]+$"
- indent-char: " + +| + +"
zyedidia-micro-6a62575/runtime/syntax/v.yaml 0000664 0001750 0001751 00000005107 15125206537 020410 0 ustar nilesh nilesh filetype: v
detect:
rules:
# Conditionals and control flow
- preproc: "\\b(module|import)\\b"
- statement: "\\b(if|else|for|match|select|defer|or|unsafe)\\b"
- statement: "\\b(break|continue|goto|return)\\b"
- type.keyword: "\\b(assert|const|enum|fn|struct|interface|type)\\b"
- type.keyword: "\\b(pub|mut|__global)\\b"
- preproc: "\\$\\b(if|else)\\b"
- identifier.os: "\\b(mac|macos|linux|windows|freebsd|openbsd|netbsd|dragonfly|android|solaris|haiku)\\b"
- identifier.compiler: "\\b(gcc|tinyc|clang|mingw|msvc|cplusplus)\\b"
- identifier.platform: "\\b(amd64|aarch64|x64|x32|little_endian|big_endian)\\b"
- identifier.other: "\\b(debug|test|js|glibc|prealloc|no_bounds_checking)\\b"
- identifier.class: "\\b([A-Z][A-Za-z0-9_]*)\\b"
- identifier.function: "\\b([a-z_]+\\()"
- symbol.operator: "\\b(i[ns])\\b|[-+/*<>!=~*%&:|,.?]"
- symbol.attribute:
start: "^\\["
end: "\\]$"
rules:
- default: ".*"
- symbol: "\\b(deprecated|direct_array_access|if|inline|live|ref_only|typedef|windows_stdcall)\\b"
# Types
- type: "\\b(byte|u(16|32|64|128)|i(nt|8|16|64|128)|f(32|64))\\b"
- type: "\\b(bool|cha[nr]|map|rune|string)\\b"
- type: "\\b(any(_int|_float)?|size_t|(uint|byte|char|void)ptr)\\b"
- constant.bool: "\\b(true|false)\\b"
- constant.none: "\\b(none)\\b"
# Brackets
- symbol.brackets: "(\\{|\\})"
- symbol.brackets: "(\\(|\\))"
- symbol.brackets: "(\\[|\\])"
# Numbers and strings
- constant.number: "\\b(0b[01_]+)\\b"
- constant.number: "\\b(0o[0-7_]+)\\b"
- constant.number: "\\b(0x[0-9a-fA-F_]+)\\b"
- constant.number: "\\b([0-9_]+)\\b"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "%."
- constant.specialChar: "\\\\[abefnrtv'\\\"\\\\]"
- constant.specialChar: "\\\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "%."
- constant.specialChar: "\\\\[abefnrtv'\\\"\\\\]"
- constant.specialChar: "\\\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
- constant.string:
start: "`"
end: "`"
rules: []
- comment:
start: "//"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/typescript.yaml 0000664 0001750 0001751 00000003571 15125206537 022354 0 ustar nilesh nilesh filetype: typescript
detect:
filename: "\\.tsx?$"
rules:
- constant.number: "\\b[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\\b"
- constant.number: "\\b[-+]?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
- constant.number: "\\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
- identifier: "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
- statement: "\\b(abstract|as|async|await|break|case|catch|class|const|constructor|continue)\\b"
- statement: "\\b(debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from)\\b"
- statement: "\\b(function|get|if|implements|import|in|instanceof|interface|is|let|module|namespace)\\b"
- statement: "\\b(new|of|package|private|protected|public|require|return|set|static|super|switch)\\b"
- statement: "\\b(this|throw|try|type|typeof|var|void|while|with|yield)\\b"
- constant: "\\b(false|true|null|undefined|NaN)\\b"
- type: "\\b(Array|Boolean|Date|Enumerator|Error|Function|Math)\\b"
- type: "\\b(Number|Object|RegExp|String|Symbol)\\b"
- type: "\\b(any|unknown|boolean|never|number|string|symbol)\\b"
- statement: "[-+/*=<>!~%?:&|]"
- constant: "/[^*]([^/]|(\\\\/))*[^\\\\]/[gim]*"
- constant: "\\\\[0-7][0-7]?[0-7]?|\\\\x[0-9a-fA-F]+|\\\\[bfnrt'\"\\?\\\\]"
- comment:
start: "//"
end: "$"
rules: []
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "TODO:?"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "`"
end: "`"
rules:
- constant.specialChar: "\\\\."
- identifier: "\\x24\\{.*?\\}"
zyedidia-micro-6a62575/runtime/syntax/twig.yaml 0000664 0001750 0001751 00000004775 15125206537 021127 0 ustar nilesh nilesh filetype: twig
detect:
filename: "\\.twig$"
rules:
- include: "html"
- symbol.tag:
start: "\\{\\{[[:space:]]"
end: "[[:space:]]\\}\\}"
rules:
- identifier: "\\b(abs|batch|capitalize|convert|encoding|date(_modify)?|default|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|round|slice|sort|split|striptags|title|trim|upper|url_encode)\\b"
- identifier.class: "\\b(attribute|block|constant|cycle|date|dump|include|max|min|parent|random|range|source|template_from_string)\\b"
- type.keyword: "\\b(and|as|constant|defined|divisibleby|empty|even|false|in|is|iterable|not|null|odd|or|same(as)?|true|with)\\b"
- symbol.operator: "[.:;,+*?|=!\\%]|<|>|/|-|&"
- symbol.brackets: "[(){}]|\\[|\\]"
- constant.number: "\\b[0-9]+\\b|\\b0x[0-9A-Fa-f]+\\b"
- constant.string:
start: "\""
end: "\""
skip: "\\\\"
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\"
rules:
- constant.specialChar: "\\\\."
- symbol.tag:
start: "\\{%[[:space:]]"
end: "[[:space:]]%\\}"
rules:
- identifier: "\\b(abs|batch|capitalize|convert|encoding|date(_modify)?|default|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|round|slice|sort|split|striptags|title|trim|upper|url_encode)\\b"
- identifier.class: "\\b(attribute|block|constant|cycle|date|dump|include|max|min|parent|random|range|source|template_from_string)\\b"
- type.keyword: "\\b(and|as|constant|defined|divisibleby|empty|even|false|in|is|iterable|not|null|odd|or|same(as)?|true|with)\\b"
- symbol.operator: "[.:;,+*?|=!\\%]|<|>|/|-|&"
- symbol.brackets: "[(){}]|\\[|\\]"
- constant.number: "\\b[0-9]+\\b|\\b0x[0-9A-Fa-f]+\\b"
- constant.string:
start: "\""
end: "\""
skip: "\\\\"
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\"
rules:
- constant.specialChar: "\\\\."
- comment:
start: "\\{#"
end: "#\\}"
rules: []
zyedidia-micro-6a62575/runtime/syntax/toml.yaml 0000664 0001750 0001751 00000003306 15125206537 021115 0 ustar nilesh nilesh filetype: toml
detect:
filename: "\\.toml"
rules:
# Punctuation
- symbol: '[=,\.]'
- symbol.brackets: '[{\[\]}]'
# Strings
- constant.string:
start: '"""'
end: '\"{3,5}'
skip: '\\.'
rules:
- constant.specialChar: '\\u[[:xdigit:]]{4}'
- constant.specialChar: '\\U[[:xdigit:]]{8}'
- constant.specialChar: '\\[btnfr"\\]'
- constant.string:
start: '"'
end: '"'
skip: '\\.'
rules:
- constant.specialChar: '\\u[[:xdigit:]]{4}'
- constant.specialChar: '\\U[[:xdigit:]]{8}'
- constant.specialChar: '\\[btnfr"\\]'
- constant.string:
start: "'''"
end: "'{3,5}"
rules: []
- constant.string:
start: "'"
end: "'"
rules: []
# Integer
- constant.number: '[+-]?(\d+_)*\d+\b'
- constant.number: '(0x([[:xdigit:]]+_)*[[:xdigit:]]+|0o([0-7]_)*[0-7]+|0b([01]+_)*[01]+)'
# Float
- constant.number: '[+-]?(\d+_)*\d+\.(\d+_)*\d+'
- constant.number: '[+-]?(\d+_)*\d+(\.(\d+_)*\d+)?[Ee][+-]?(\d+_)*\d+'
- constant.number: '(\+|-)(inf|nan)'
# Bare key, keys starting with a digit or dash are ambiguous with numbers and are skipped
- identifier: '\b[A-Za-z_][A-Za-z0-9_-]*\b'
# Boolean and inf, nan without sign
- constant.bool.true: '\btrue\b'
- constant.bool.false: '\bfalse\b'
- constant.number: '\b(inf|nan)\b'
# Date and Time
- constant: '\d+-\d{2}-\d{2}([T ]\d{2}:\d{2}:\d{2}(\.\d+)?([+-]\d{2}:\d{2}|Z)?)?'
- constant: '\d{2}:\d{2}:\d{2}(\.\d+)?'
# Comments
- comment:
start: "#"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/tex.yaml 0000664 0001750 0001751 00000001423 15125206537 020740 0 ustar nilesh nilesh filetype: tex
detect:
filename: "\\.tex$|\\.bib$|\\.cls$"
rules:
# colorize the identifiers of {} and []
- identifier:
start: "\\{"
end: "\\}"
rules: []
- identifier:
start: "\\["
end: "\\]"
rules: []
# numbers
- constant.number: "\\b[0-9]+(\\.[0-9]+)?([[:space:]](pt|mm|cm|in|ex|em|bp|pc|dd|cc|nd|nc|sp))?\\b"
# let brackets have the default color again
- default: "[{}\\[\\]]"
- special: "[&\\\\]"
# macros
- statement: "\\\\@?[a-zA-Z_]+"
- statement: "\\\\%"
# comments
- comment:
start: "[^\\\\]%|^%"
end: "$"
rules: []
- comment:
start: "\\\\begin\\{comment\\}"
end: "\\\\end\\{comment\\}"
rules: []
zyedidia-micro-6a62575/runtime/syntax/terraform.yaml 0000664 0001750 0001751 00000010037 15125206537 022142 0 ustar nilesh nilesh #
# This syntax definition is based on the Terraform guide:
# https://www.terraform.io/docs/configuration/index.html
#
# Formatting is loosely based on Sublime's and VSCode's syntax highlighting for Terraform:
# https://github.com/totoroot/Terraform.tmLanguage/blob/master/Terraform.sublime-syntax
# https://github.com/hashicorp/vscode-terraform/blob/main/syntaxes/terraform.tmGrammar.json
#
filetype: terraform
detect:
# File Extensions:
#
# - ".tf": the standard file extension
# https://www.terraform.io/docs/configuration/index.html#code-organization
#
# - ".hcl": non-terraform tools often use this HCL syntax, i.e. Vault
# https://www.vaultproject.io/docs/configuration/
filename: "\\.tf$|\\.hcl$"
rules:
# Named Values
#
# https://www.terraform.io/docs/language/expressions/references.html
- identifier: "\\b(var|local|module|data|path|terraform)\\b"
# Block types
#
# resource: https://www.terraform.io/docs/language/resources/syntax.html
# provider: https://www.terraform.io/docs/language/providers/configuration.html
# variable: https://www.terraform.io/docs/language/values/variables.html
# output: https://www.terraform.io/docs/language/values/outputs.html
# locals: https://www.terraform.io/docs/language/values/locals.html
# module: https://www.terraform.io/docs/language/modules/syntax.html
# data: https://www.terraform.io/docs/language/data-sources/index.html
# terraform: https://www.terraform.io/docs/language/settings/index.html#terraform-block-syntax
- special: "\\b(resource|provider|variable|output|locals|module|terraform)\\b"
# Built-In type keywords
#
# https://www.terraform.io/docs/language/expressions/type-constraints.html#primitive-types
# https://www.terraform.io/docs/language/expressions/type-constraints.html#dynamic-types-the-quot-any-quot-constraint
- type.keyword: "\\b(any|string|number|bool)\\b"
# Built-In Functions
#
# https://www.terraform.io/docs/language/functions/index.html
- statement: "\\b(abs|ceil|floor|log|max|min|parseint|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trim|trimprefix|trimsuffix|trimspace|upper|alltrue|anytrue|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|one|range|reverse|setintersection|setproduct|setsubtract|setunion|slice|sort|sum|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|textdecodebase64|textencodebase64|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filesha1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|can|defaults|nonsensitive|sensitive|tobool|tolist|tomap|tonumber|toset|tostring|try)\\b"
- symbol.operator: "([~^.:;,+*|=!\\%@]|<|>|/|-|&)"
- symbol.brackets: "([(){}]|\\[|\\])"
- constant.number: "\\b([0-9]+|0x[0-9a-fA-F]*)\\b|'.'"
- constant.bool: "\\b(true|false|null)\\b"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "%."
- constant.specialChar: "\\\\[abfnrtv'\\\"\\\\]"
- constant.specialChar: "\\\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
- constant.string:
start: "''"
end: "''"
skip: "\\\\."
rules:
- constant.specialChar: "%."
- constant.specialChar: "\\\\[abfnrtv'\\\"\\\\]"
- constant.specialChar: "\\\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
- comment:
start: "#|//"
end: "$\\n?"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/tcl.yaml 0000664 0001750 0001751 00000004267 15125206537 020733 0 ustar nilesh nilesh filetype: tcl
detect:
filename: "\\.tcl$"
header: "^#!.*/(env +)?tclsh( |$)"
rules:
- statement: "\\b(after|append|array|auto_execok|auto_import|auto_load|auto_load_index|auto_qualify|binary|break|case|catch|cd|clock|close|concat|continue|else|elseif|encoding|eof|error|eval|exec|exit|expr|fblocked|fconfigure|fcopy|file|fileevent|flush|for|foreach|format|gets|glob|global|history|if|incr|info|interp|join|lappend|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|namespace|open|package|pid|puts|pwd|read|regexp|regsub|rename|return|scan|seek|set|socket|source|split|string|subst|switch|tclLog|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait|while)\\b"
- statement: "\\b(array anymore|array donesearch|array exists|array get|array names|array nextelement|array set|array size|array startsearch|array statistics|array unset)\\b"
- statement: "\\b(string bytelength|string compare|string equal|string first|string index|string is|string last|string length|string map|string match|string range|string repeat|string replace|string to|string tolower|string totitle|string toupper|string trim|string trimleft|string trimright|string will|string wordend|string wordstart)\\b"
- statement: "\\b(alarm|auto_load_pkg|bsearch|catclose|catgets|catopen|ccollate|cconcat|cequal|chgrp|chmod|chown|chroot|cindex|clength|cmdtrace|commandloop|crange|csubstr|ctoken|ctype|dup|echo|execl|fcntl|flock|fork|fstat|ftruncate|funlock|host_info|id|infox|keyldel|keylget|keylkeys|keylset|kill|lassign|lcontain|lempty|lgets|link|lmatch|loadlibindex|loop|lvarcat|lvarpop|lvarpush|max|min|nice|pipe|profile|random|readdir|replicate|scancontext|scanfile|scanmatch|select|server_accept|server_create|signal|sleep|sync|system|tclx_findinit|tclx_fork|tclx_load_tndxs|tclx_sleep|tclx_system|tclx_wait|times|translit|try_eval|umask|wait)\\b"
- identifier.class: "proc[[:space:]]|(\\{|\\})"
- symbol.operator: "(\\(|\\)|\\;|`|\\\\|\\$|<|>|!|=|&|\\|)"
- constant.number: "\\b[0-9]+(\\.[0-9]+)?\\b"
- constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- identifier.var: "\\$\\{?[0-9A-Z_!@#$*?-]+\\}?"
- comment: "(^|;)[[:space:]]*#.*"
- indent-char.whitespace: "[[:space:]]+$"
zyedidia-micro-6a62575/runtime/syntax/systemd.yaml 0000664 0001750 0001751 00000012111 15125206537 021624 0 ustar nilesh nilesh filetype: systemd
detect:
filename: "\\.(service|socket|timer)$"
header: "^\\[Unit\\]$"
rules:
- statement: "^(Accept|After|Alias|AllowIsolate|Also|ANSI_COLOR|_AUDIT_LOGINUID|_AUDIT_SESSION|Backlog|Before|BindIPv6Only|BindsTo|BindToDevice|BlockIOReadBandwidth|BlockIOWeight|BlockIOWriteBandwidth|_BOOT_ID|Broadcast|BUG_REPORT_URL|BusName|Capabilities|CapabilityBoundingSet|CHASSIS|cipher|class|_CMDLINE|CODE_FILE|CODE_FUNC|CODE_LINE|_COMM|Compress|ConditionACPower|ConditionCapability|ConditionDirectoryNotEmpty|ConditionFileIsExecutable|ConditionFileNotEmpty|ConditionHost|ConditionKernelCommandLine|ConditionNull|ConditionPathExists|ConditionPathExistsGlob|ConditionPathIsDirectory|ConditionPathIsMountPoint|ConditionPathIsReadWrite|ConditionPathIsSymbolicLink|ConditionSecurity|ConditionVirtualization|Conflicts|ControlGroup|ControlGroupAttribute|ControlGroupModify|ControlGroupPersistent|controllers|Controllers|CPE_NAME|CPUAffinity|CPUSchedulingPolicy|CPUSchedulingPriority|CPUSchedulingResetOnFork|CPUShares|CrashChVT|CrashShell|__CURSOR|debug|DefaultControllers|DefaultDependencies|DefaultLimitAS|DefaultLimitCORE|DefaultLimitCPU|DefaultLimitDATA|DefaultLimitFSIZE|DefaultLimitLOCKS|DefaultLimitMEMLOCK|DefaultLimitMSGQUEUE|DefaultLimitNICE|DefaultLimitNOFILE|DefaultLimitNPROC|DefaultLimitRSS|DefaultLimitRTPRIO|DefaultLimitRTTIME|DefaultLimitSIGPENDING|DefaultLimitSTACK|DefaultStandardError|DefaultStandardOutput|Description|DeviceAllow|DeviceDeny|DirectoryMode|DirectoryNotEmpty|Documentation|DumpCore|entropy|Environment|EnvironmentFile|ERRNO|event_timeout|_EXE|ExecReload|ExecStart|ExecStartPost|ExecStartPre|ExecStop|ExecStopPost|ExecStopPre|filter|FONT|FONT_MAP|FONT_UNIMAP|ForwardToConsole|ForwardToKMsg|ForwardToSyslog|FreeBind|freq|FsckPassNo|fstab|_GID|Group|GuessMainPID|HandleHibernateKey|HandleLidSwitch|HandlePowerKey|HandleSuspendKey|hash|HibernateKeyIgnoreInhibited|HOME_URL|_HOSTNAME|ICON_NAME|ID|IdleAction|IdleActionSec|ID_LIKE|ID_MODEL|ID_MODEL_FROM_DATABASE|IgnoreOnIsolate|IgnoreOnSnapshot|IgnoreSIGPIPE|InaccessibleDirectories|InhibitDelayMaxSec|init|IOSchedulingClass|IOSchedulingPriority|IPTOS|IPTTL|JobTimeoutSec|JoinControllers|KeepAlive|KEYMAP|KEYMAP_TOGGLE|KillExcludeUsers|KillMode|KillOnlyUsers|KillSignal|KillUserProcesses|LidSwitchIgnoreInhibited|LimitAS|LimitCORE|LimitCPU|LimitDATA|LimitFSIZE|LimitLOCKS|LimitMEMLOCK|LimitMSGQUEUE|LimitNICE|LimitNOFILE|LimitNPROC|LimitRSS|LimitRTPRIO|LimitRTTIME|LimitSIGPENDING|LimitSTACK|link_priority|valueListenDatagram|ListenFIFO|ListenMessageQueue|ListenNetlink|ListenSequentialPacket|ListenSpecial|ListenStream|LogColor|LogLevel|LogLocation|LogTarget|luks|_MACHINE_ID|MakeDirectory|Mark|MaxConnections|MaxFileSec|MaxLevelConsole|MaxLevelKMsg|MaxLevelStore|MaxLevelSyslog|MaxRetentionSec|MemoryLimit|MemorySoftLimit|MESSAGE|MESSAGE_ID|MessageQueueMaxMessages|MessageQueueMessageSize|__MONOTONIC_TIMESTAMP|MountFlags|NAME|NAutoVTs|Nice|NonBlocking|NoNewPrivileges|NotifyAccess|OnActiveSec|OnBootSec|OnCalendar|OnFailure|OnFailureIsolate|OnStartupSec|OnUnitActiveSec|OnUnitInactiveSec|OOMScoreAdjust|Options|output|PAMName|PartOf|PassCredentials|PassSecurity|PathChanged|PathExists|PathExistsGlob|PathModified|PermissionsStartOnly|_PID|PIDFile|PipeSize|PowerKeyIgnoreInhibited|PRETTY_HOSTNAME|PRETTY_NAME|Priority|PRIORITY|PrivateNetwork|PrivateTmp|PropagatesReloadTo|pss|RateLimitBurst|RateLimitInterval|ReadOnlyDirectories|ReadWriteDirectories|__REALTIME_TIMESTAMP|ReceiveBuffer|RefuseManualStart|RefuseManualStop|rel|ReloadPropagatedFrom|RemainAfterExit|RequiredBy|Requires|RequiresMountsFor|RequiresOverridable|Requisite|RequisiteOverridable|ReserveVT|ResetControllers|Restart|RestartPreventExitStatus|RestartSec|RootDirectory|RootDirectoryStartOnly|RuntimeKeepFree|RuntimeMaxFileSize|RuntimeMaxUse|RuntimeWatchdogSec|samples|scale_x|scale_y|Seal|SecureBits|_SELINUX_CONTEXT|SendBuffer|SendSIGKILL|Service|ShowStatus|ShutdownWatchdogSec|size|SmackLabel|SmackLabelIPIn|SmackLabelIPOut|SocketMode|Sockets|SourcePath|_SOURCE_REALTIME_TIMESTAMP|SplitMode|StandardError|StandardInput|StandardOutput|StartLimitAction|StartLimitBurst|StartLimitInterval|static_node|StopWhenUnneeded|Storage|string_escape|none|replaceSuccessExitStatus|SupplementaryGroups|SUPPORT_URL|SuspendKeyIgnoreInhibited|SyslogFacility|SYSLOG_FACILITY|SyslogIdentifier|SYSLOG_IDENTIFIER|SyslogLevel|SyslogLevelPrefix|SYSLOG_PID|SystemCallFilter|SYSTEMD_ALIAS|_SYSTEMD_CGROUP|_SYSTEMD_OWNER_UID|SYSTEMD_READY|_SYSTEMD_SESSION|_SYSTEMD_UNIT|_SYSTEMD_USER_UNIT|SYSTEMD_WANTS|SystemKeepFree|SystemMaxFileSize|SystemMaxUse|SysVStartPriority|TCPCongestion|TCPWrapName|timeout|TimeoutSec|TimeoutStartSec|TimeoutStopSec|TimerSlackNSec|Transparent|_TRANSPORT|tries|TTYPath|TTYReset|TTYVHangup|TTYVTDisallocate|Type|_UID|UMask|Unit|User|UtmpIdentifier|VERSION|VERSION_ID|WantedBy|Wants|WatchdogSec|What|Where|WorkingDirectory)="
- preproc: "^\\.include\\>"
- symbol: "="
- special: "^\\[(Unit|Install|Service|Socket|Timer)\\]"
- identifier.class: "\\$MAINPID"
- constant.bool: "\\b(true|false)\\b"
- comment: "(^|[[:space:]])#([^{].*)?$"
- indent-char.whitespace: "[[:space:]]+$"
- indent-char: " + +| + +"
zyedidia-micro-6a62575/runtime/syntax/syntax_converter.go 0000664 0001750 0001751 00000011504 15125206537 023221 0 ustar nilesh nilesh //go:build ignore
package main
import (
"fmt"
"os"
"regexp"
"strings"
)
type SingleRule struct {
color string
regex string
}
type MultiRule struct {
color string
start string
end string
}
// JoinRule takes a syntax rule (which can be multiple regular expressions)
// and joins it into one regular expression by ORing everything together
func JoinRule(rule string) string {
split := strings.Split(rule, `" "`)
joined := strings.Join(split, "|")
return joined
}
func parseFile(text, filename string) (filetype, syntax, header string, rules []any) {
lines := strings.Split(text, "\n")
// Regex for parsing syntax statements
syntaxParser := regexp.MustCompile(`syntax "(.*?)"\s+"(.*)"+`)
// Regex for parsing header statements
headerParser := regexp.MustCompile(`header "(.*)"`)
// Regex for parsing standard syntax rules
ruleParser := regexp.MustCompile(`color (.*?)\s+(?:\((.+?)?\)\s+)?"(.*)"`)
// Regex for parsing syntax rules with start="..." end="..."
ruleStartEndParser := regexp.MustCompile(`color (.*?)\s+(?:\((.+?)?\)\s+)?start="(.*)"\s+end="(.*)"`)
for lineNum, line := range lines {
line = strings.TrimSpace(line)
if line == "" {
continue
}
if strings.HasPrefix(line, "#") {
continue
}
if strings.HasPrefix(line, "syntax") {
syntaxMatches := syntaxParser.FindSubmatch([]byte(line))
if len(syntaxMatches) == 3 {
filetype = string(syntaxMatches[1])
syntax = JoinRule(string(syntaxMatches[2]))
} else {
fmt.Println(filename, lineNum, "Syntax statement is not valid: "+line)
continue
}
}
if strings.HasPrefix(line, "header") {
// Header statement
headerMatches := headerParser.FindSubmatch([]byte(line))
if len(headerMatches) == 2 {
header = JoinRule(string(headerMatches[1]))
} else {
fmt.Println(filename, lineNum, "Header statement is not valid: "+line)
continue
}
}
// Syntax rule, but it could be standard or start-end
if ruleParser.MatchString(line) {
// Standard syntax rule
// Parse the line
submatch := ruleParser.FindSubmatch([]byte(line))
var color string
var regexStr string
var flags string
if len(submatch) == 4 {
// If len is 4 then the user specified some additional flags to use
color = string(submatch[1])
flags = string(submatch[2])
if flags != "" {
regexStr = "(?" + flags + ")" + JoinRule(string(submatch[3]))
} else {
regexStr = JoinRule(string(submatch[3]))
}
} else if len(submatch) == 3 {
// If len is 3, no additional flags were given
color = string(submatch[1])
regexStr = JoinRule(string(submatch[2]))
} else {
// If len is not 3 or 4 there is a problem
fmt.Println(filename, lineNum, "Invalid statement: "+line)
continue
}
rules = append(rules, SingleRule{color, regexStr})
} else if ruleStartEndParser.MatchString(line) {
// Start-end syntax rule
submatch := ruleStartEndParser.FindSubmatch([]byte(line))
var color string
var start string
var end string
// Use m and s flags by default
if len(submatch) == 5 {
// If len is 5 the user provided some additional flags
color = string(submatch[1])
start = string(submatch[3])
end = string(submatch[4])
} else if len(submatch) == 4 {
// If len is 4 the user did not provide additional flags
color = string(submatch[1])
start = string(submatch[2])
end = string(submatch[3])
} else {
// If len is not 4 or 5 there is a problem
fmt.Println(filename, lineNum, "Invalid statement: "+line)
continue
}
// rules[color] = "(?" + flags + ")" + "(" + start + ").*?(" + end + ")"
rules = append(rules, MultiRule{color, start, end})
}
}
return
}
func generateFile(filetype, syntax, header string, rules []any) string {
output := ""
output += fmt.Sprintf("filetype: %s\n\n", filetype)
output += fmt.Sprintf("detect: \n filename: \"%s\"\n", strings.Replace(strings.Replace(syntax, "\\", "\\\\", -1), "\"", "\\\"", -1))
if header != "" {
output += fmt.Sprintf(" signature: \"%s\"\n", strings.Replace(strings.Replace(header, "\\", "\\\\", -1), "\"", "\\\"", -1))
}
output += "\nrules:\n"
for _, r := range rules {
if rule, ok := r.(SingleRule); ok {
output += fmt.Sprintf(" - %s: \"%s\"\n", rule.color, strings.Replace(strings.Replace(rule.regex, "\\", "\\\\", -1), "\"", "\\\"", -1))
} else if rule, ok := r.(MultiRule); ok {
output += fmt.Sprintf(" - %s:\n", rule.color)
output += fmt.Sprintf(" start: \"%s\"\n", strings.Replace(strings.Replace(rule.start, "\\", "\\\\", -1), "\"", "\\\"", -1))
output += fmt.Sprintf(" end: \"%s\"\n", strings.Replace(strings.Replace(rule.end, "\\", "\\\\", -1), "\"", "\\\"", -1))
}
}
return output
}
func main() {
if len(os.Args) < 2 {
fmt.Println("no args")
return
}
data, _ := os.ReadFile(os.Args[1])
fmt.Print(generateFile(parseFile(string(data), os.Args[1])))
}
zyedidia-micro-6a62575/runtime/syntax/swift.yaml 0000664 0001750 0001751 00000010525 15125206537 021277 0 ustar nilesh nilesh filetype: swift
detect:
filename: "\\.swift$"
header: "^#!.*bin/(env +)?swift( |$)"
rules:
# Patterns
- type: \b(_)\b
# Operators
- symbol.operator: ([.:;,+*|=!?\\%]|<|>|/|-|&)
# Declaration Keywords
- statement.declaration: \b(associatedtype|class|deinit|enum|extension|fileprivate|func|import|init)\b
- statement.declaration: \b(inout|internal|let|open|operator|private|protocol|public|static|struct|subscript|typealias|var)\b
# Statements Keywords
- statement: \b(break|case|continue|default|defer|do|else|fallthrough|for|guard)\b
- statement: \b(if|inif|repeat|return|switch|where|while)\b
# keyword.reserved
- statement.reserved: \b(associativity|convenience|dynamic|didSet|final|get|infix|indirect|lazy|left|mutating)\b
- statement.reserved: \b(none|nonmutating|override|postfix|precedence|prefix|Protocol|required)\b
- statement.reserved: \b(right|set|Type|unowned|weak|willSet)\b
# Expression and types
- type: \b(as|Any|catch|is|rethrows|super|self|throw|throws|try)\b
- statement.built_in: \b(abs|advance|alignof|alignofValue|anyGenerator|assert|assertionFailure|bridgeFromObjectiveC)\b
- statement.built_in: \b(bridgeFromObjectiveCUnconditional|bridgeToObjectiveC|bridgeToObjectiveCUnconditional|contains)\b
- statement.built_in: \b(count|countElements|countLeadingZeros|debugPrint|debugPrintln|distance|dropFirst|dropLast|dump|encodeBitsAsWords)\b
- statement.built_in: \b(enumerate|equal|fatalError|filter|find|getBridgedObjectiveCType|getVaList|indices|insertionSort)\b
- statement.built_in: \b(isBridgedToObjectiveC|isBridgedVerbatimToObjectiveC|isUniquelyReferenced|isUniquelyReferencedNonObjC)\b
- statement.built_in: \b(join|lexicographicalCompare|map|max|maxElement|min|minElement|numericCast|overlaps|partition|posix)\b
- statement.built_in: \b(precondition|preconditionFailure|print|println|quickSort|readLine|reduce|reflect)\b
- statement.built_in: \b(reinterpretCast!reverse|roundUpToAlignment|sizeof|sizeofValue|sort|split|startsWith|stride)\b
- statement.built_in: \b(strideof|strideofValue|swap|toString|transcode|underestimateCount|unsafeAddressOf|unsafeBitCast)\b
- statement.built_in: \b(unsafeDowncast|unsafeUnwrap|unsafeReflect|withExtendedLifetime|withObjectAtPlusZero|withUnsafePointer)\b
- statement.built_in: \b(withUnsafePointerToObject|withUnsafeMutablePointer|withUnsafeMutablePointers|withUnsafePointer)\b
- statement.built_in: \b(withUnsafePointers|withVaList|zip)\b
# Meta
- statement.meta: \@\b(autoclosure|available|convention|exported|IBAction|IBDesignable|IBOutlet|IBInspectable|infix)\b
- statement.meta: \@\b(lazy|noreturn|noescape|nonobjc|NSApplicationMain|NSCopying|NSManaged|objc|prefix|postfix)\b
- statement.meta: \@\b(required|testable|warn_unused_result|UIApplicationMain)\b
#preprocessor
- preproc: ^[[:space:]]*#[[:space:]]*(define|else|elseif|endif|if|selector)\b
- preproc.DebugIdentifier: \b(__COLUMN__|__FILE__|__FUNCTION__|__LINE__)\b
- preproc.DebugIdentifier: ^[[:space:]]*#[[:space:]]*(column|file|function|line)\b
# Constant
- constant: \b(true|false|nil)
- constant.number: ([0-9]+)
# Storage Types
- type.storage: \b((U)?Int(8|16|32|64))\b
- type.storage: \b(Int|UInt|String|Bit|Bool|Character|Double|Optional|Float|Range)\b
- type.storage: \b(AnyObject)\b
# Collections
- type.collections: \b(Array|Dictionary|Set)\b
# Ctypes
- type.ctypes: \b(CBool|CChar|CUnsignedChar|CShort|CUnsignedShort|CInt|CUnsignedInt|CLong|CUnsignedLong|CLongLong|CUnsignedLongLong|CWideChar|CChar16|CChar32|CFloat|CDouble)\b
# String
- constant.string:
start: \"
end: \"
skip: \\.
rules:
- constant.specialChar: (\\0|\\\\|\\t|\\n|\\r|\\"|\\')
- constant.interpolation: \\\([[:graph:]]*\)
- constant.unicode: \\u\{[[:xdigit:]]+}
# Shebang Line
- comment.shebang: ^(#!).*
# Doc Comment
- comment.doc: (///).*
# Line Comment
- comment.line: "//.*"
# Block Comment
- comment.block:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
# Doc Block Comment
- comment.block:
start: "/\\*\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
# Todo
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/svelte.yaml 0000664 0001750 0001751 00000001007 15125206537 021440 0 ustar nilesh nilesh filetype: svelte
detect:
filename: "\\.svelte$"
rules:
- default:
start: ""
rules:
- include: "javascript"
- default:
start: ""
rules:
- include: "typescript"
- default:
start: ""
end: ""
rules:
- include: "css"
- default:
start: "^"
end: "$"
rules:
- include: "html5"
zyedidia-micro-6a62575/runtime/syntax/stata.yaml 0000664 0001750 0001751 00000046033 15125206537 021262 0 ustar nilesh nilesh filetype: stata
detect:
filename: "\\.a?do$"
rules:
- constant.string:
start: "`\""
end: "\"'"
rules:
- identifier.macro:
start: "`"
end: "'"
rules: []
- identifier.macro: "\\$\\w+"
- constant.specialChar: "\\\\."
- constant.string:
start: "\""
end: "\""
rules:
- identifier.macro:
start: "`"
end: "'"
rules: []
- identifier.macro: "\\$\\w+"
- constant.specialChar: "\\\\."
# Built-in functions
- identifier:
"\\b(_caller|abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormal|bofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|Clock|cloglog|Cmdyhms|Cofc|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|hadamard|halfyear|halfyearly|has_eprop|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|J|laplace|laplaceden|laplacetail|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|missing|min|minbyte|mindouble|minfloat|minint|minlong|minutes|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexm|regexr|regexs|reldif|replay|return|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|strcat|strdup|strofreal|string|strtrim|stritrim|strltrim|strrtrim|strlen|strupper|strlower|strproper|strmatch|strpos|strrpos|strreverse|strtoname|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|ustrcompare|ustrsortkey|ustrcompareex|ustrsortkeyex|ustrfix|ustrto|ustrfrom|ustrlen|ustrinvalidcnt|usubstr|ustrleft|ustrright|ustrupper|ustrlower|ustrtitle|ustrtrim|ustrltrim|ustrrtrim|ustrnormalize|ustrpos|ustrrpos|ustrregexm|ustrregexrf|ustrregexra|ustrregexs|ustrreverse|ustrunescape|ustrtohex|ustrtoname|ustrword|ustrwordcount|usubinstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|year|yearly|yh|ym|yofd|yq|yw)\\b"
# Built-in commands
- statement:
"\\b(if|else|else\\s+if|in|foreach|for|forv|forva|forval|forvalu|forvalue|forvalues|by|bys|bysort|quietly|qui|about|ac|ac_7|acprplot|acprplot_7|adjust|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_estat|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|as|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|ass|asse|asser|assert|avplot|avplot_7|avplots|avplots_7|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|bootstrap|bootstrap_8|boxco_l|boxco_p|boxcox|boxcox_6|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bs_7|bsampl_w|bsample|bsample_7|bsqreg|bstat|bstat_7|bstat_8|bstrap|bstrap_7|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_8|canon_8_p|canon_estat|canon_p|cap|caprojection|capt|captu|captur|capture|cat|cc|cchart|cchart_7|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clo|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|continue|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cox|cox_p|cox_sw|coxbase|coxhaz|coxvar|cprplot|cprplot_7|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_5|ctst_st|cttost|cumsp|cumsp_7|cumul|cusum|cusum_7|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|destring|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|distinct|do|doe|doed|doedi|doedit|dotplot|dotplot_7|dprobit|drawnorm|drop|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|e|ed|edi|edit|egen|eivreg|emdef|end|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|ex|exi|exit|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|open|read|close|file|filefilter|fillin|find_hlp_file|findfile|findit|findit_7|fit|fl|fli|flis|flist|for5_0|form|forma|format|fpredict|frac_154|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracplot_7|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|g|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|ge|gen|gene|gener|genera|generat|generate|genrank|genstd|genvmean|gettoken|gl|gladder|gladder_7|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_6|glm_p|glm_sw|glmpred|glo|glob|globa|global|glogit|glogit_8|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_5|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gprobit_8|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|graph7|grebar|greigen|greigen_7|greigen_8|grmeanby|grmeanby_7|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hadimvo|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|hist_7|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_7|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprob_1_lf|ivprob_lf|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_1_lf|ivtob_lf|ivtobit|ivtobit_p|jackknife|jacknife|jknife|jknife_6|jknife_8|jkstat|joinby|kalarma1|kap|kap_3|kapmeier|kappa|kapwgt|kdensity|kdensity_7|keep|ksm|ksmirnov|ktau|kwallis|l|la|lab|labe|label|labelbook|ladder|levels|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|loc|loca|local|log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lowess_7|lpredict|lrecomp|lroc|lroc_7|lrtest|ls|lsens|lsens_7|lsens_x|lstat|ltable|ltable_7|ltriang|lv|lvr2plot|lvr2plot_7|m|ma|mac|macr|macro|makecns|man|manova|manova_estat|manova_p|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|meqparse|mer|merg|merge|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_5|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|n|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_7|newey_p|news|nl|nl_7|nl_9|nl_9_p|nl_p|nl_p_7|nlcom|nlcom_p|nlexp2|nlexp2_7|nlexp2a|nlexp2a_7|nlexp3|nlexp3_7|nlgom3|nlgom3_7|nlgom4|nlgom4_7|nlinit|nllog3|nllog3_7|nllog4|nllog4_7|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|no|nobreak|noi|nois|noisi|noisil|noisily|note|notes|notes_dlg|nptrend|numlabel|numlist|odbc|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|pac_7|palette|parse|parse_dissim|pause|pca|pca_8|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchart_7|pchi|pchi_7|pcorr|pctile|pentium|pergram|pergram_7|permute|permute_8|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkexamine_7|pkshape|pksumm|pksumm_7|pl|plo|plot|plugin|pnorm|pnorm_7|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|pr|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|pro|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prog|progr|progra|program|prop|proportion|prtest|prtesti|pwcorr|pwd|q|s|qby|qbys|qchi|qchi_7|qladder|qladder_7|qnorm|qnorm_7|qqplot|qqplot_7|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|quantile_7|que|quer|query|range|ranksum|ratio|rchart|rchart_7|rcof|recast|reclink|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|replace|report|reshape|restore|ret|retu|retur|return|rm|rmdir|robvar|roccomp|roccomp_7|roccomp_8|rocf_lf|rocfit|rocfit_8|rocgold|rocplot|rocplot_7|roctab|roctab_7|rolling|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvfplot_7|rvpplot|rvpplot_7|sa|safesum|sample|sampsi|sav|save|savedresults|saveold|sc|sca|scal|scala|scalar|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serrbar_7|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|shewhart_7|signestimationsample|signrank|signtest|simul|simul_7|simulate|simulate_8|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplot_7|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|statsby|statsby_8|stbase|stci|stci_7|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcoxkm_7|stcstat|stcurv|stcurve|stcurve_7|stdes|stem|stepwise|stereg|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphplot_7|stphtest|stphtest_7|stptime|strate|strate_7|streg|streg_sw|streset|sts|sts_7|stset|stsplit|stsum|sttocc|sttoct|stvary|stweib|su|suest|suest_8|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svydes_8|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintreg_7|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymarkout_8|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypois_7|svypoisson|svyprobit|svyprobt|svyprop|svyprop_7|svyratio|svyreg|svyreg_p|svyregress|svyset|svyset_7|svyset_8|svytab|svytab_7|svytest|svytotal|sw|sw_8|swcnreg|swcox|swereg|swilk|swlogis|swlogit|swologit|swoprbt|swpois|swprobit|swqreg|swtobit|swweib|symmetry|symmi|symplot|symplot_7|syntax|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabodds_7|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tempfile|tempname|tempvar|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|tostring|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|u|unab|unabbrev|unabcmd|update|us|use|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlist|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vce|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|weib1_lf|weib2_lf|weib_lf|weib_lf0|weibhet_glf|weibhet_glf_sh|weibhet_glfa|weibhet_glfa_sh|weibhet_gp|weibhet_ilf|weibhet_ilf_sh|weibhet_ilfa|weibhet_ilfa_sh|weibhet_ip|weibu_sw|weibul_p|weibull|weibull_c|weibull_s|weibullhet|wh|whelp|whi|which|whil|while|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestb_7|wntestq|xchart|xchart_7|xcorr|xcorr_7|xi|xi_6|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_8|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_8|xtintreg_d2|xtintreg_p|xtivp_1|xtivp_2|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_8|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_8|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_8|xttobit_p|xttrans|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztbase_5|ztcox_5|ztdes_5|ztereg_5|ztfill_5|ztgen_5|ztir_5|ztjoin_5|ztnb|ztnb_p|ztp|ztp_p|zts_5|ztset_5|ztspli_5|ztsum_5|zttoct_5|ztvary_5|ztweib_5)\\b"
- constant.number: "\\b[+-]?([0-9]+(\\.[0-9]+)?|\\.[0-9]+|\\.)([eE][+-]?[0-9]+)?[i]?\\b"
- symbol.operator: "-|==|<=|>=|<|>|&|!="
- symbol.operator: "\\*|\\+|\\^|/|!|~|=|~="
- symbol.brackets: "[\\{\\}\\(\\)\\[\\]]"
- identifier: "%-?\\d{1,2}(\\.\\d{1,2})?[gfe]c?"
- identifier: "%(21x|16H|16L|8H|8L)"
- identifier: "%-?(tc|tC|td|tw|tm|tq|th|ty|tg).{0,32}"
- identifier: "%[-~]?\\d{1,4}s"
- identifier.macro: "\\$\\w{1,32}"
- identifier.macro:
start: "`"
end: "'"
rules: []
- comment:
start: "///?"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "^\\s*\\*"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/sql.yaml 0000664 0001750 0001751 00000004244 15125206537 020743 0 ustar nilesh nilesh filetype: sql
detect:
filename: "\\.sql$|sqliterc$"
rules:
- statement: "(?i)\\b(ALL|ASC|AS|ALTER|AND|ADD|AUTO_INCREMENT)\\b"
- statement: "(?i)\\b(BETWEEN|BINARY|BOTH|BY|BOOLEAN)\\b"
- statement: "(?i)\\b(CHANGE|CHECK|COLUMNS|COLUMN|CROSS|CREATE)\\b"
- statement: "(?i)\\b(DATABASES|DATABASE|DATA|DELAYED|DESCRIBE|DESC|DISTINCT|DELETE|DROP|DEFAULT)\\b"
- statement: "(?i)\\b(ENCLOSED|ESCAPED|EXISTS|EXPLAIN)\\b"
- statement: "(?i)\\b(FIELDS|FIELD|FLUSH|FOR|FOREIGN|FUNCTION|FROM)\\b"
- statement: "(?i)\\b(GROUP|GRANT|HAVING)\\b"
- statement: "(?i)\\b(IGNORE|INDEX|INFILE|INSERT|INNER|INTO|IDENTIFIED|IN|IS|IF)\\b"
- statement: "(?i)\\b(JOIN|KEYS|KILL|KEY)\\b"
- statement: "(?i)\\b(LEADING|LIKE|LIMIT|LINES|LOAD|LOCAL|LOCK|LOW_PRIORITY|LEFT|LANGUAGE)\\b"
- statement: "(?i)\\b(MODIFY|NATURAL|NOT|NULL|NEXTVAL)\\b"
- statement: "(?i)\\b(OPTIMIZE|OPTION|OPTIONALLY|ORDER|OUTFILE|OR|OUTER|ON)\\b"
- statement: "(?i)\\b(PROCEDURE|PROCEDURAL|PRIMARY)\\b"
- statement: "(?i)\\b(READ|REFERENCES|REGEXP|RENAME|REPLACE|RETURN|REVOKE|RLIKE|RIGHT)\\b"
- statement: "(?i)\\b(SHOW|SONAME|STATUS|STRAIGHT_JOIN|SELECT|SETVAL|SET)\\b"
- statement: "(?i)\\b(TABLES|TERMINATED|TO|TRAILING|TRUNCATE|TABLE|TEMPORARY|TRIGGER|TRUSTED)\\b"
- statement: "(?i)\\b(UNIQUE|UNLOCK|USE|USING|UPDATE|VALUES|VARIABLES|VIEW)\\b"
- statement: "(?i)\\b(WITH|WRITE|WHERE|ZEROFILL|TYPE|XOR)\\b"
- type: "(?i)\\b(VARCHAR|TINYINT|TEXT|DATE|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT|FLOAT|DOUBLE|DECIMAL|DATETIME|TIMESTAMP|TIME|YEAR|UNSIGNED|CHAR|TINYBLOB|TINYTEXT|BLOB|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|ENUM|BOOL|BINARY|VARBINARY)\\b"
- preproc: "(?i)\\.\\b(databases|dump|echo|exit|explain|header(s)?|help)\\b"
- preproc: "(?i)\\.\\b(import|indices|mode|nullvalue|output|prompt|quit|read)\\b"
- preproc: "(?i)\\.\\b(schema|separator|show|tables|timeout|width)\\b"
- constant.bool: "\\b(ON|OFF)\\b"
- constant.number: "\\b([0-9]+)\\b"
- constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- constant.string: "`(\\\\.|[^\\\\`])*`"
- comment: "\\-\\-.*$"
- indent-char.whitespace: "[[:space:]]+$"
- indent-char: " + +| + +"
zyedidia-micro-6a62575/runtime/syntax/solidity.yaml 0000664 0001750 0001751 00000003151 15125206537 022000 0 ustar nilesh nilesh filetype: solidity
detect:
filename: "\\.sol$"
rules:
- preproc: "\\b(contract|library|pragma)\\b"
- constant.number: "\\b[-]?([0-9]+|0x[0-9a-fA-F]+)\\b"
- identifier: "[a-zA-Z][_a-zA-Z0-9]*[[:space:]]*"
- statement: "\\b(assembly|break|continue|do|for|function|if|else|new|return|returns|while)\\b"
- special: "\\b(\\.send|throw)\\b" # make sure they are very visible
- type.keyword: "\\b(anonymous|constant|indexed|payable|public|private|external|internal)\\b"
- constant: "\\b(block(\\.(blockhash|coinbase|difficulty|gaslimit|number|timestamp))?|msg(\\.(data|gas|sender|value))?|now|tx(\\.(gasprice|origin))?)\\b"
- constant: "\\b(keccak256|sha3|sha256|ripemd160|ecrecover|addmod|mulmod|this|super|selfdestruct|\\.balance)\\b"
- constant: "\\b(true|false)\\b"
- constant: "\\b(wei|szabo|finney|ether|seconds|minutes|hours|days|weeks|years)\\b"
- type: "\\b(address|bool|mapping|string|var|int(\\d*)|uint(\\d*)|byte(\\d*)|fixed(\\d*)|ufixed(\\d*))\\b"
- error: "\\b(abstract|after|case|catch|default|final|in|inline|interface|let|match|null|of|pure|relocatable|static|switch|try|type|typeof|view)\\b"
- operator: "[-+/*=<>!~%?:&|]"
- comment:
start: "//"
end: "$"
rules: []
- comment:
start: "/\\*"
end: "\\*/"
rules: []
- todo: "TODO:?"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
zyedidia-micro-6a62575/runtime/syntax/smalltalk.yaml 0000664 0001750 0001751 00000003420 15125206537 022123 0 ustar nilesh nilesh filetype: smalltalk
detect:
filename: "\\.(st|sources|changes)$"
rules:
- statement: "\\b(self|nil|true|false|ifTrue|ifFalse|whileTrue|whileFalse)\\b"
- constant: "(\\$|@|@@)?\\b[A-Z]+[0-9A-Z_a-z]*"
- constant.number: "(?i)\\b0x[0-9a-fA-F][0-9a-f_]*\\b"
- constant.number: "(?i)\\b0b[01][01_]*\\b"
- constant.number: "(?i)\\b[0-9][0-9_]*(['.'][0-9_]+)?(e[\\-]?[0-9_]+)?\\b"
# Ruby "Symbols"
- constant: "(i?)([ ]|^):[0-9A-Z_]+\\b"
- constant: "\\b(__FILE__|__LINE__)\\b"
- constant: "/([^/]|(\\\\/))*/[iomx]*|%r\\{([^}]|(\\\\}))*\\}[iomx]*"
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules: []
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- symbol.brackets:
start: "#\\{"
end: "\\}"
rules:
- default: ".*"
- constant.string.exec:
start: "`"
end: "`"
skip: "\\\\."
rules:
- symbol.brackets:
start: "#\\{"
end: "\\}"
rules:
- default: ".*"
- constant.string: "%[QW]?\\{[^}]*\\}|%[QW]?\\([^)]*\\)|%[QW]?<[^>]*>|%[QW]?\\[[^]]*\\]|%[QW]?\\$[^$]*\\$|%[QW]?\\^[^^]*\\^|%[QW]?![^!]*!"
- constant.string: "%[qw]\\{[^}]*\\}|%[qw]\\([^)]*\\)|%[qw]<[^>]*>|%[qw]\\[[^]]*\\]|%[qw]\\$[^$]*\\$|%[qw]\\^[^^]*\\^|%[qw]![^!]*!"
- constant.string.exec: "%[x]\\{[^}]*\\}|%[x]\\([^)]*\\)|%[x]<[^>]*>|%[x]\\[[^]]*\\]|%[x]\\$[^$]*\\$|%[x]\\^[^^]*\\^|%[x]![^!]*!"
- symbol.operator: "[-+/*=<>!~%&|^]|\\b:"
- symbol.brackets: "([(){}]|\\[|\\])"
- constant.macro:
start: "<<-?'?EOT'?"
end: "^EOT"
rules: []
- preproc.shebang: "^#!.+?( |$)"
zyedidia-micro-6a62575/runtime/syntax/sls.yaml 0000664 0001750 0001751 00000000665 15125206537 020750 0 ustar nilesh nilesh filetype: salt
detect:
filename: "\\.sls$"
rules:
- identifier.var: "^[^ -].*:$"
- identifier.var: ".*:"
- default: "salt:"
- constant.number: "/*[0-9]/*"
- constant.bool: "\\b(True|False)\\b"
- constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- special: "\\b(grain|grains|compound|pcre|grain_pcre|list|pillar)\\b"
- comment: "^#.*"
- statement: "\\b(if|elif|else|or|not|and|endif|end)\\b"
zyedidia-micro-6a62575/runtime/syntax/sh.yaml 0000664 0001750 0001751 00000005202 15125206537 020551 0 ustar nilesh nilesh filetype: shell
# Detection based on filename is rather complicated as there are many
# different file extensions and special filenames in use.
# This expressions aims to capture them all while not matching
# filenames that coincidentally contain the same substring.
#
# File extensions:
# * .sh
# * .bash
# * .ash
# * .ebuild (Gentoo ebuild format)
#
# Special filenames:
# * .bashrc, .bash_aliases, .bash_functions .bash_profile
# * profile, .profile (/etc/profile or ~/.profile)
# * Pkgfile
# * pkgmk.conf
# * rc.conf
# * PKGBUILD (Arch Linux build scripts)
# * APKBUILD
#
# Fix command (fc) files:
# * bash-fc. (followed by a random string)
detect:
filename: "(\\.(sh|bash|ash|ebuild)$|(\\.bash(rc|_aliases|_functions|_profile)|\\.?profile|Pkgfile|pkgmk\\.conf|rc\\.conf|PKGBUILD|APKBUILD)$|bash-fc\\.)"
header: "^#!.*/(env +)?(ba)?(a)?(mk)?sh( |$)"
rules:
# Numbers
- constant.number: "\\b[0-9]+\\b"
# Conditionals and control flow
- statement: "\\b(break|case|continue|do|done|elif|else|esac|exec|exit|fi|for|function|if|in|return|select|then|trap|until|wait|while)\\b"
- special: "[`$<>!=&~^\\{\\}\\(\\)\\;\\]\\[]+"
# Shell commands
- type: "\\b(cd|command|echo|eval|export|getopts|let|local|read|set|shift|time|umask|unset)\\b"
# Common linux commands
- type: "\\b((g|ig)?awk|bash|dash|find|getopt|\\w{0,4}grep|kill|killall|\\w{0,4}less|make|pkill|sed|sh|tar)\\b"
# Coreutils commands
- type: "\\b(base64|basename|cat|chcon|chgrp|chmod|chown|chroot|cksum|comm|cp|csplit|cut|date|dd|df|dir|dircolors|dirname|du|env|expand|expr|factor|false|fmt|fold|head|hostid|id|install|join|link|ln|logname|ls|md5sum|mkdir|mkfifo|mknod|mktemp|mv|nice|nl|nohup|nproc|numfmt|od|paste|pathchk|pinky|pr|printenv|printf|ptx|pwd|readlink|realpath|rm|rmdir|runcon|seq|(sha1|sha224|sha256|sha384|sha512)sum|shred|shuf|sleep|sort|split|stat|stdbuf|stty|sum|sync|tac|tail|tee|test|time|timeout|touch|tr|true|truncate|tsort|tty|uname|unexpand|uniq|unlink|users|vdir|wc|who|whoami|yes)\\b"
# Conditional flags
- statement: "(\\s|^)(--?[A-Za-z0-9][\\w-]*)"
- identifier: "\\$\\{[\\w:!%&=+#~@*^$?, .\\-\\/\\[\\]]+\\}"
- identifier: "\\$([0-9!#@*$?-]|[A-Za-z_]\\w*)"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules: []
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules: []
- constant.string:
start: "<<[^\\s]+[-~.]*[A-Za-z0-9]+$"
end: "^[^\\s]+[A-Za-z0-9]+$"
skip: "\\\\."
rules: []
- comment:
start: "(^|\\s)#"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/sed.yaml 0000664 0001750 0001751 00000000514 15125206537 020713 0 ustar nilesh nilesh filetype: sed
detect:
filename: "\\.sed$"
header: "^#!.*bin/(env +)?sed( |$)"
rules:
- symbol.operator: "[|^$.*+]"
- constant.number: "\\{[0-9]+,?[0-9]*\\}"
- constant.specialChar: "\\\\."
- comment: "(^|[[:space:]])#([^{].*)?$"
- indent-char.whitespace: "[[:space:]]+$"
- indent-char: " + +| + +"
zyedidia-micro-6a62575/runtime/syntax/scala.yaml 0000664 0001750 0001751 00000002004 15125206537 021217 0 ustar nilesh nilesh filetype: scala
detect:
filename: "\\.sc(ala)?$|\\.sbt$"
rules:
- type: "\\b(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\\b"
- statement: "\\b(match|val|var|break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\\b"
- statement: "\\b(def|object|case|trait|lazy|implicit|abstract|class|extends|with|final|implements|override|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile|sealed)\\b"
- constant.string:
start: "\"\"\""
end: "\"\"\""
rules: []
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant: "\\b(true|false|null)\\b"
- comment:
start: "//"
end: "$"
rules: []
- comment:
start: "/\\*"
end: "\\*/"
rules: []
- comment:
start: "/\\*\\*"
end: "\\*/"
rules: []
zyedidia-micro-6a62575/runtime/syntax/scad.yaml 0000664 0001750 0001751 00000003610 15125206537 021052 0 ustar nilesh nilesh filetype: OpenSCAD
# OpenSCAD is a functional programming language used for representing
# 2D/3D models for use in the program of the same name.
#
# The following documents were used as reference material:
# https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language
# https://openscad.org/cheatsheet/index.html
detect:
filename: "\\.scad$"
rules:
- identifier: "\\b(function|module) +[a-z0-9_]+"
- statement: "\\b(abs|acos|asin|assert|atan|atan2|ceil|child|children|chr|circle|color|concat|cos|cross|cube|cylinder|difference|dxf_cross|dxf_dim|each|echo|else|exp|floor|for|function|hull|if|import|import_dxf|intersection|intersection_for|is_bool|is_function|is_list|is_num|is_string|is_undef|len|let|linear_extrude|ln|log|lookup|max|min|minkowski|mirror|module|multmatrix|norm|offset|ord|parent_module|polygon|polyhedron|pow|projection|rands|render|resize|rotate|rotate_extrude|round|scale|search|sign|sin|sphere|sqrt|square|str|surface|tan|text|translate|union|version|version_num)\\b"
- symbol: "[,\\.;:?]"
- symbol.operator: "[-+*/%^<>!=]|[<=>!]=|&&|\\|\\|"
- symbol.brackets: "[{(<>)}]|\\[|\\]"
# modifiers that change interpretation of the subtree after it
- special: "[#%!*]"
# special variables start with a dollar sign
- special: "\\B\\$[a-z]+\\b"
- preproc:
start: "^ *(use|include) <"
end: ">;?"
rules: []
- constant.number: "\\b[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?|PI|inf|nan\\b"
- constant.bool: "\\b(true|false)\\b"
- constant: "\\b(undef)\\b"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- comment:
start: "//"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
zyedidia-micro-6a62575/runtime/syntax/sage.yaml 0000664 0001750 0001751 00000004743 15125206537 021067 0 ustar nilesh nilesh filetype: sage
detect:
filename: "\\.sage$"
header: "^#!.*/(env +)?sage( |$)"
rules:
# built-in objects
- constant: "\\b(None|self|True|False)\\b"
# built-in attributes
- constant: "\\b(__bases__|__builtin__|__class__|__debug__|__dict__|__doc__|__file__|__members__|__methods__|__name__|__self__)\\b"
# built-in functions
- identifier: "\\b(abs|apply|callable|chr|cmp|compile|delattr|dir|divmod|eval|exec|execfile|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|intern|isinstance|issubclass|len|locals|max|min|next|oct|open|ord|pow|range|raw_input|reduce|reload|repr|round|setattr|unichr|vars|zip|__import__)\\b"
# special method names
- identifier: "\\b(__abs__|__add__|__and__|__call__|__cmp__|__coerce__|__complex__|__concat__|__contains__|__del__|__delattr__|__delitem__|__dict__|__delslice__|__div__|__divmod__|__float__|__getattr__|__getitem__|__getslice__|__hash__|__hex__|__init__|__int__|__inv__|__invert__|__len__|__long__|__lshift__|__mod__|__mul__|__neg__|__nonzero__|__oct__|__or__|__pos__|__pow__|__radd__|__rand__|__rcmp__|__rdiv__|__rdivmod__|__repeat__|__repr__|__rlshift__|__rmod__|__rmul__|__ror__|__rpow__|__rrshift__|__rshift__|__rsub__|__rxor__|__setattr__|__setitem__|__setslice__|__str__|__sub__|__xor__)\\b"
# types
- type: "\\b(basestring|bool|buffer|bytearray|bytes|classmethod|complex|dict|enumerate|file|float|frozenset|int|list|long|map|memoryview|object|property|reversed|set|slice|staticmethod|str|super|tuple|type|unicode|xrange)\\b"
# definitions
- identifier: "def [a-zA-Z_0-9]+"
# keywords
- statement: "\\b(and|as|assert|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\\b"
# decorators
- brightgreen: "@.*[(]"
# operators
- statement: "([.:;,+*|=!\\%@]|<|>|/|-|&)"
# parentheses
- statement: "([(){}]|\\[|\\])"
# numbers
- constant.number: "\\b[0-9]+\\b"
- comment:
start: "\"\"\""
end: "\"\"\""
rules: []
- comment:
start: "'''"
end: "'''"
rules: []
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- comment:
start: "#"
end: "$"
rules: []
zyedidia-micro-6a62575/runtime/syntax/rust.yaml 0000664 0001750 0001751 00000004154 15125206537 021141 0 ustar nilesh nilesh filetype: rust
detect:
filename: "\\.rs$"
rules:
# function definition
- identifier: "fn [a-z0-9_]+"
# Reserved words
- statement: "\\b(abstract|alignof|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|false|final|fn|for|gen|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|try|union|unsafe|unsized|use|virtual|where|while|yield)\\b"
# macros
- special: "[a-z_]+!"
# Constants
- constant: "\\b[A-Z][A-Z_0-9]+\\b"
# Numbers
- constant.number: "\\b[0-9]+\\b"
# Booleans
- constant: "\\b(true|false)\\b"
# Traits/Enums/Structs/Types/etc.
- type: "\\b[A-Z]+[a-zA-Z_0-9]*[a-z]+[a-zA-Z_0-9]*\\b"
# Builtin types that start with lowercase.
- type: "\\b(bool|str|char|((i|u)(8|16|32|64|128|size))|f(16|32|64|128))\\b"
- constant.string:
start: "[bc]?\""
end: "\""
skip: '\\.'
rules:
- constant.specialChar: '\\.'
- constant.string:
start: "[bc]?r#\""
end: "\"#"
rules: []
- constant.string:
start: "[bc]?r##\""
end: "\"##"
rules: []
- constant.string:
start: "[bc]?r###\""
end: "\"###"
rules: []
- constant.string:
start: "[bc]?r####+\""
end: "\"####+"
rules: []
# Character literals
# NOTE: This is an ugly hack to work around the fact that rust uses
# single quotes both for character literals and lifetimes.
# Match all character literals.
- constant.string: "'(\\\\.|.)'"
# Match the '"' literal which would otherwise match
# as a double quoted string and destroy the highlighting.
- constant.string:
start: "'\""
end: "'"
rules: []
- comment:
start: "//"
end: "$"
rules:
- todo: "(TODO|XXX|FIXME):?"
- comment:
start: "/\\*"
end: "\\*/"
rules:
- todo: "(TODO|XXX|FIXME):?"
- special:
start: "#!\\["
end: "\\]"
rules: []
zyedidia-micro-6a62575/runtime/syntax/ruby.yaml 0000664 0001750 0001751 00000005041 15125206537 021121 0 ustar nilesh nilesh filetype: ruby
detect:
filename: "\\.(rb|rake|gemspec)$|^(.*[\\/])?(Gemfile|config.ru|Rakefile|Capfile|Vagrantfile|Guardfile|Appfile|Fastfile|Pluginfile|Podfile|\\.?[Bb]rewfile)$"
header: "^#!.*/(env +)?ruby( |$)"
rules:
- comment.bright:
start: "##"
end: "$"
rules:
- todo: "(XXX|TODO|FIXME|BUG|\\?\\?\\?)"
- comment:
start: "#"
end: "$"
rules:
- todo: "(XXX|TODO|FIXME|BUG|\\?\\?\\?)"
- statement: "\\b(BEGIN|END|alias|and|begin|break|case|class|def|defined\\?|do|else|elsif|end|ensure|for|if|in|module|next|nil|not|or|private|protected|public|redo|rescue|retry|return|self|super|then|undef|unless|until|when|while|yield)\\b"
- constant: "(\\$|@|@@)?\\b[A-Z]+[0-9A-Z_a-z]*"
- constant.number: "(?i)\\b0x[0-9a-fA-F][0-9a-f_]*\\b"
- constant.number: "(?i)\\b0b[01][01_]*\\b"
- constant.number: "(?i)\\b[0-9][0-9_]*(['.'][0-9_]+)?(e[\\-]?[0-9_]+)?\\b"
# Predefined global variables
- constant:
start: "[$]([!@&`'+~=/\\\\,;.<>*$?:\"_]|-[A-Za-z0-9_]|[0-9]+)"
end: "\\B|\\b"
rules: []
# Ruby "Symbols"
- constant: "(i?)([ ]|^):[0-9A-Z_]+\\b"
- constant: "\\b(__FILE__|__LINE__)\\b"
- constant: "/([^/]|(\\\\/))*/[iomx]*|%r\\{([^}]|(\\\\}))*\\}[iomx]*"
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules: []
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- symbol.brackets:
start: "#\\{"
end: "\\}"
rules:
- default: ".*"
- constant.string.exec:
start: "`"
end: "`"
skip: "\\\\."
rules:
- symbol.brackets:
start: "#\\{"
end: "\\}"
rules:
- default: ".*"
- constant.string: "%[QW]?\\{[^}]*\\}|%[QW]?\\([^)]*\\)|%[QW]?<[^>]*>|%[QW]?\\[[^]]*\\]|%[QW]?\\$[^$]*\\$|%[QW]?\\^[^^]*\\^|%[QW]?![^!]*!"
- constant.string: "%[qw]\\{[^}]*\\}|%[qw]\\([^)]*\\)|%[qw]<[^>]*>|%[qw]\\[[^]]*\\]|%[qw]\\$[^$]*\\$|%[qw]\\^[^^]*\\^|%[qw]![^!]*!"
- constant.string.exec: "%[x]\\{[^}]*\\}|%[x]\\([^)]*\\)|%[x]<[^>]*>|%[x]\\[[^]]*\\]|%[x]\\$[^$]*\\$|%[x]\\^[^^]*\\^|%[x]![^!]*!"
- constant.bool: "\\b(true|false|nil|TRUE|FALSE|NIL)\\b"
- symbol.operator: "[-+/*=<>!~%&|^]|\\b:"
- symbol.brackets: "([(){}]|\\[|\\])"
- constant.macro:
start: "<<-?'?EOT'?"
end: "^EOT"
rules: []
- preproc.shebang: "^#!.+?( |$)"
zyedidia-micro-6a62575/runtime/syntax/rpmspec.yaml 0000664 0001750 0001751 00000003411 15125206537 021610 0 ustar nilesh nilesh filetype: rpmspec
detect:
filename: "\\.spec$|\\.rpmspec$"
rules:
- preproc: "\\b(Icon|ExclusiveOs|ExcludeOs):"
- preproc: "\\b(BuildArch|BuildArchitectures|ExclusiveArch|ExcludeArch):"
- preproc: "\\b(Conflicts|Obsoletes|Provides|Requires|Requires\\(.*\\)|Enhances|Suggests|BuildConflicts|BuildRequires|Recommends|PreReq|Supplements):"
- preproc: "\\b(Epoch|Serial|Nosource|Nopatch):"
- preproc: "\\b(AutoReq|AutoProv|AutoReqProv):"
- preproc: "\\b(Copyright|License|Summary|Summary\\(.*\\)|Distribution|Vendor|Packager|Group|Source[0-9]*|Patch[0-9]*|BuildRoot|Prefix):"
- preproc: "\\b(Name|Version|Release|Url|URL):"
- preproc:
start: "^(Source|Patch)"
end: ":"
rules: []
- preproc: "(i386|i486|i586|i686|athlon|ia64|alpha|alphaev5|alphaev56|alphapca56|alphaev6|alphaev67|sparc|sparcv9|sparc64armv3l|armv4b|armv4lm|ips|mipsel|ppc|ppc|iseries|ppcpseries|ppc64|m68k|m68kmint|Sgi|rs6000|i370|s390x|s390|noarch)"
- preproc: "(ifarch|ifnarch|ifos|ifnos)"
- constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- statement: "%(if|else|endif|define|global|undefine)"
- statement: "%_?([A-Z_a-z_0-9_]*)"
- statement:
start: "%\\{"
end: "\\}"
rules: []
- statement:
start: "%\\{__"
end: "\\}"
rules: []
- statement: "\\$(RPM_BUILD_ROOT)\\>"
- special: "^%(build$|changelog|check$|clean$|description)"
- special: "^%(files|install$|package|prep$)"
- special: "^%(pre|preun|pretrans|post|postun|posttrans)"
- special: "^%(trigger|triggerin|triggerpostun|triggerun|verifyscript)"
- comment: "(^|[[:space:]])#([^{].*)?$"
- constant: "^\\*.*$"
- indent-char.whitespace: "[[:space:]]+$"
- indent-char: " + +| + +"
- todo: "TODO:?"
zyedidia-micro-6a62575/runtime/syntax/renpy.yaml 0000664 0001750 0001751 00000001124 15125206537 021273 0 ustar nilesh nilesh filetype: renpy
detect:
filename: "\\.rpy$"
rules:
# Script language keywords.
- statement: "\\b(python|init|early|define|default|label|call|jump|image|layeredimage|screen|style|transform|menu|show|hide|scene|at|with|zorder|behind|pause|play|stop|fadeout|fadein|queue)\\b"
# ATL keywords.
- type: "\\b(repeat|block|choice|parallel|(x|y|)(pos|offset|anchor|align|center|tile|zoom)|time|linear|easein|alpha|subpixel)\\b"
- identifier: "\\bpersistent\\b"
- special: "\\$ "
# Tab characters are not allowed in Renpy scripts.
- error: "\\t"
- include: python
zyedidia-micro-6a62575/runtime/syntax/reST.yaml 0000664 0001750 0001751 00000000630 15125206537 021014 0 ustar nilesh nilesh filetype: rst
detect:
filename: "\\.rest$|\\.rst$"
rules:
- statement: "\\*\\*[^*]+\\*\\*"
- preproc: "::"
- constant.string: "`[^`]+`_{1,2}"
- constant.string: "``[^`]+``"
- identifier: "^\\.\\. .*$"
- identifier: "^__ .*$"
- type: "^###+$"
- type: "^\\*\\*\\*+$"
- special: "^===+$"
- special: "^---+$"
- special: "^\\^\\^\\^+$"
- special: "^\"\"\"+$"
zyedidia-micro-6a62575/runtime/syntax/raku.yaml 0000664 0001750 0001751 00000003773 15125206537 021114 0 ustar nilesh nilesh filetype: raku
detect:
filename: "\\.(p(l|m|od)?6|raku(mod|doc|test)?|nqp)$"
rules:
- type: "\\b(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork)|get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join|keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek|seekdir|se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr|y|truncate|umask|un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\\b"
- statement: "\\b(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\\b"
- special: "\\b(has|is|class|role|given|when|BUILD|multi|returns|method|submethod|slurp|say|sub)\\b"
- identifier: "[$@%&](\\.|!|\\^)?([[:alpha:]]|_)"
- identifier: "[$@%&](\\.|!|^)?([[:alpha:]]|_)([[:alnum:]]|-|_)*([[:alnum:]]|_)"
- identifier: "[$@%&](\\?|\\*)([A-Z])([A-Z]|-)*([A-Z])"
- constant.string:
start: "\""
end: "\""
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- constant.string:
start: "'"
end: "'"
skip: "\\\\."
rules:
- constant.specialChar: "\\\\."
- preproc:
start: "(^use| = new)"
end: ";"
rules: []
- identifier.macro:
start: "<