├── .editorconfig ├── .gitattributes ├── .gitignore ├── .lefthook.yaml ├── .pnp.cjs ├── .pnp.loader.mjs ├── .prettierrc.cjs ├── .vscode └── launch.json ├── .yarn └── releases │ └── yarn-1.22.22.cjs ├── .yarnrc ├── Bakefile.sh ├── LICENSE-APACHE-2.0 ├── LICENSE-GPL-3.0 ├── LICENSE-MIT ├── LICENSE-MPL-2.0 ├── LICENSE-THRIFT ├── README.md ├── assets └── icon.png ├── bake ├── docs └── index.md ├── eslint.config.js ├── foxxo.toml ├── language-configuration ├── asl.language-configuration.json ├── asm-intel-x86-generic.language-configuration.json ├── automake.language-configuration.json ├── awk-regexp.language-configuration.json ├── awk.language-configuration.json ├── bats.language-configuration.json ├── cisco.language-configuration.json ├── desktop.language-configuration.json ├── digrc.language-configuration.json ├── dircolors.language-configuration.json ├── dsdl.language-configuration.json ├── edk2_dec.language-configuration.json ├── edk2_dsc.language-configuration.json ├── edk2_fdf.language-configuration.json ├── edk2_inf.language-configuration.json ├── edk2_uni.language-configuration.json ├── edk2_vfr.language-configuration.json ├── ejs.language-configuration.json ├── env.language-configuration.json ├── expect.language-configuration.json ├── flatbuffers.language-configuration.json ├── gnuplot.language-configuration.json ├── haml.language-configuration.json ├── handlebars.language-configuration.json ├── hla.language-configuration.json ├── i3.language-configuration.json ├── icalendar.language-configuration.json ├── ignore.language-configuration.json ├── infokey.language-configuration.json ├── inputrc.language-configuration.json ├── io.language-configuration.json ├── jq.language-configuration.json ├── json5.language-configuration.json ├── jsonl.language-configuration.json ├── lesskey.language-configuration.json ├── linkerscript.language-configuration.json ├── llvm.language-configuration.json ├── logfile.language-configuration.json ├── logstash.language-configuration.json ├── m3u.language-configuration.json ├── m4.language-configuration.json ├── mapfile.language-configuration.json ├── ninja.language-configuration.json ├── nix.language-configuration.json ├── odin.language-configuration.json ├── pbxproj.language-configuration.json ├── po.language-configuration.json ├── psqlrc.language-configuration.json ├── qlik.language-configuration.json ├── robots-txt.language-configuration.json ├── stylus.language-configuration.json ├── sxhkdrc.language-configuration.json ├── systemd-unit.language-configuration.json ├── t4.language-configuration.json ├── tablegen.language-configuration.json ├── terminfo.language-configuration.json ├── textproto.language-configuration.json ├── thrift.language-configuration.json ├── todo.language-configuration.json ├── typoscript.language-configuration.json ├── vcard.language-configuration.json ├── xdefaults.language-configuration.json ├── yarnlock.language-configuration.json └── zone.language-configuration.json ├── package.json ├── scripts ├── check-files.js └── write-readme.js ├── syntaxes ├── asl.tmLanguage.json ├── asm-intel-x86-generic.tmLanguage.json ├── automake.tmLanguage.json ├── awk-regexp.tmLanguage.json ├── awk.tmLanguage.json ├── bats.extended.tmLanguage.json ├── bats.tmLanguage.json ├── bats.variables.tmLanguage.json ├── cisco.tmLanguage.json ├── desktop.tmLanguage.json ├── digrc.tmLanguage.json ├── dircolors.tmLanguage.json ├── dsdl.tmLanguage.json ├── edk2_dec.tmLanguage.json ├── edk2_dsc.tmLanguage.json ├── edk2_fdf.tmLanguage.json ├── edk2_inf.tmLanguage.json ├── edk2_uni.tmLanguage.json ├── edk2_vfr.tmLanguage.json ├── ejs-nested.tmLanguage.json ├── ejs.tmLanguage.json ├── env.tmLanguage.json ├── expect.tmLanguage.json ├── flatbuffers.tmLanguage.json ├── gnuplot.tmLanguage.json ├── haml.tmLanguage.json ├── handlebars.tmLanguage.json ├── hla.tmLanguage.json ├── i3.tmLanguage.json ├── icalendar.tmLanguage.json ├── ignore-mercurial.tmLanguage.json ├── ignore-slug.tmLanguage.json ├── ignore.tmLanguage.json ├── infokey.tmLanguage.json ├── inputrc.tmLanguage.json ├── io.tmLanguage.json ├── jq.tmLanguage.json ├── json5.tmLanguage.json ├── jsonl.tmLanguage.json ├── lesskey.tmLanguage.json ├── linkerscript.tmLanguage.json ├── llvm.tmLanguage.json ├── logfile.tmLanguage.json ├── logstash.tmLanguage.json ├── m3u.tmLanguage.json ├── m4.tmLanguage.json ├── mapfile.tmLanguage.json ├── ninja.tmLanguage.json ├── nix.tmLanguage.json ├── odin.tmLanguage.json ├── pbxproj.tmLanguage.json ├── po.tmLanguage.json ├── proto3.codeblock.tmLanguage.json ├── proto3.tmLanguage.json ├── psqlrc.tmLanguage.json ├── qlik.tmLanguage.json ├── robots-txt.tmLanguage.json ├── stylus.tmLanguage.json ├── sxhkdrc.tmLanguage.json ├── systemd-unit.tmLanguage.json ├── t4.tmLanguage.json ├── tablegen.tmLanguage.json ├── terminfo.tmLanguage.json ├── textproto-codeblock.tmLanguage.json ├── textproto.tmLanguage.json ├── thrift.tmLanguage.json ├── todo.tmLanguage.json ├── tsconfig.tmLanguage.json ├── typoscript.tmLanguage.json ├── vcard.tmLanguage.json ├── xdefaults.tmLanguage.json ├── yarnlock.tmLanguage.json └── zone.tmLanguage.json ├── testdata ├── .Xresources ├── 1.asl ├── 1.asm ├── 1.awk ├── 1.bats ├── 1.c ├── 1.desktop ├── 1.digrc ├── 1.dircolors ├── 1.ejs ├── 1.env ├── 1.expect ├── 1.fbs ├── 1.gitignore ├── 1.gnuplot ├── 1.haml ├── 1.hbs ├── 1.hla ├── 1.html ├── 1.i3.config ├── 1.ics ├── 1.inputrc ├── 1.io ├── 1.ios ├── 1.jq ├── 1.json5 ├── 1.jsonl ├── 1.ld ├── 1.lesskey ├── 1.ll ├── 1.log ├── 1.logstash.conf ├── 1.m3u ├── 1.map ├── 1.nix ├── 1.odin ├── 1.pbxproj ├── 1.po ├── 1.proto ├── 1.psqlrc ├── 1.qvs ├── 1.rasi ├── 1.styl ├── 1.sxhkdrc.conf ├── 1.t4 ├── 1.td ├── 1.textproto ├── 1.thrift ├── 1.typoscript ├── 1.uavcan ├── 1.vcard ├── 1.xdefaults ├── 1.zone ├── configure.m4 ├── lesskey ├── robots.txt ├── todo.txt └── yarn.lock └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.{md,yaml,yml}] 11 | indent_style = space 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # foxxo start 2 | * text=auto eol=lf 3 | bake linguist-generated 4 | # foxxo end 5 | 6 | *.json linguist-detectable 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | build/ 3 | *.log 4 | !testdata/1.log 5 | *.vsix 6 | .env* 7 | -------------------------------------------------------------------------------- /.lefthook.yaml: -------------------------------------------------------------------------------- 1 | assert_lefthook_installed: true 2 | pre-commit: 3 | commands: 4 | check-files: 5 | run: './scripts/check-files.js' 6 | write-readme: 7 | # files: 'printf "%s\n" package.json README.md' 8 | run: './scripts/write-readme.js' 9 | stage_fixed: true 10 | -------------------------------------------------------------------------------- /.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('prettier').Config} */ 2 | module.exports = { 3 | ...require('@hyperupcall/prettier-config'), 4 | overrides: [ 5 | { 6 | files: '*.tmLanguage.json', 7 | options: { 8 | plugins: ['prettier-plugin-sort-json'], 9 | jsonSortOrder: JSON.stringify({ 10 | $schema: null, 11 | name: null, 12 | scopeName: null, 13 | uuid: null, 14 | comment: null, 15 | author: null, 16 | maxTokensPerLine: null, 17 | keyEquivalent: null, 18 | fileTypes: null, 19 | injectionSelector: null, 20 | foldingStartMarker: null, 21 | foldingStopMarker: null, 22 | '/^[^\\d+]/': 'lexical', 23 | '/^\\d+/': 'numeric', 24 | patterns: null, 25 | repository: null, 26 | }), 27 | }, 28 | }, 29 | { 30 | files: '*.language-configuration.json', 31 | options: { 32 | plugins: ['prettier-plugin-sort-json'], 33 | jsonSortOrder: JSON.stringify({ 34 | $schema: null, 35 | comments: null, 36 | wordPattern: null, 37 | colorizedBracketPairs: null, 38 | brackets: null, 39 | autoCloseBefore: null, 40 | autoClosingPairs: null, 41 | surroundingPairs: null, 42 | lineComment: null, 43 | blockComment: null, 44 | '/^[^\\d+]/': 'lexical', 45 | '/^\\d+/': 'numeric', 46 | }), 47 | }, 48 | }, 49 | ], 50 | } 51 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Launch Extension", 6 | "type": "extensionHost", 7 | "request": "launch", 8 | "args": [ 9 | "--extensionDevelopmentPath=${workspaceFolder}", 10 | "${workspaceFolder}/testdata" 11 | ] 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | yarn-path ".yarn/releases/yarn-1.22.22.cjs" 6 | -------------------------------------------------------------------------------- /Bakefile.sh: -------------------------------------------------------------------------------- 1 | # shellcheck shell=bash 2 | 3 | task.init() { 4 | pnpm install 5 | } 6 | 7 | task.publish() { 8 | vsce publish 9 | ovsx publish --pat "$(<'.env-ovsx')" 10 | } 11 | -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [year] [fullname] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSE-THRIFT: -------------------------------------------------------------------------------- 1 | Permission to copy, use, modify, sell and distribute this 2 | software is granted. This software is provided "as is" without 3 | express or implied warranty, and with no claim as to its 4 | suitability for any purpose. 5 | -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperupcall-projects/vscode-assorted-languages/422324e88e334bf8cf4b9a5e4e31d21e8d010fd4/assets/icon.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # VSCode Assorted Languages 2 | 3 | A VSCode extension with syntaxes for miscellaneous languages. Individually, these languages don't warrent an extension; but collectively, they do. 4 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | export { default } from '@hyperupcall/scripts-nodejs/config-eslint.js' 2 | -------------------------------------------------------------------------------- /foxxo.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | ecosystem = 'unknown' 3 | form = 'lib' 4 | for = 'anyone' 5 | status = 'maintained' 6 | 7 | [discovery] 8 | categories = [] 9 | tags = [] 10 | -------------------------------------------------------------------------------- /language-configuration/asl.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["\"", "\""], 16 | ["'", "'"] 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"] 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /language-configuration/asm-intel-x86-generic.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": ";" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""] 15 | ], 16 | "surroundingPairs": [ 17 | ["{", "}"], 18 | ["[", "]"], 19 | ["(", ")"], 20 | ["\"", "\""] 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /language-configuration/automake.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/awk-regexp.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "colorizedBracketPairs": [["(", ")"]], 3 | "brackets": [ 4 | ["(", ")"], 5 | ["[", "]"], 6 | ["{", "}"], 7 | ["<", ">"] 8 | ], 9 | "autoCloseBefore": "()[{< |$+*?", 10 | "autoClosingPairs": [ 11 | ["(", ")"], 12 | ["[", "]"], 13 | ["{", "}"], 14 | ["<", ">"] 15 | ], 16 | "surroundingPairs": [ 17 | ["(", ")"], 18 | ["[", "]"] 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /language-configuration/awk.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /language-configuration/bats.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/cisco.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "!" 4 | }, 5 | "autoClosingPairs": [ 6 | ["^C", "^C"], 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"], 10 | ["\"", "\""], 11 | ["'", "'"] 12 | ], 13 | "surroundingPairs": [ 14 | ["^C", "^C"], 15 | ["{", "}"], 16 | ["[", "]"], 17 | ["(", ")"], 18 | ["\"", "\""], 19 | ["'", "'"] 20 | ], 21 | "folding": { 22 | "markers": { 23 | "start": "(^interface |^ip dhcp pool |^ssid )", 24 | "end": "(^exit|^!)" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /language-configuration/desktop.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ], 24 | "folding": { 25 | "markers": { 26 | "start": "^\\s*#region\\b", 27 | "end": "^\\s*#endregion\\b" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /language-configuration/digrc.language-configuration.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperupcall-projects/vscode-assorted-languages/422324e88e334bf8cf4b9a5e4e31d21e8d010fd4/language-configuration/digrc.language-configuration.json -------------------------------------------------------------------------------- /language-configuration/dircolors.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/dsdl.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [["[", "]"]], 6 | "autoClosingPairs": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"], 10 | ["\"", "\""], 11 | ["'", "'"] 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /language-configuration/edk2_dec.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/edk2_dsc.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/edk2_fdf.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/edk2_inf.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/edk2_uni.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /language-configuration/edk2_vfr.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /language-configuration/ejs.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "blockComment": ["<%#", "%>", "<%/*", "*/%>", "", ""] 4 | }, 5 | "brackets": [ 6 | [""], 7 | ["<", ">"], 8 | ["{", "}"], 9 | ["[", "]"], 10 | ["(", ")"] 11 | ], 12 | "autoClosingPairs": [ 13 | { "open": "{", "close": "}" }, 14 | { "open": "[", "close": "]" }, 15 | { "open": "(", "close": ")" }, 16 | { "open": "'", "close": "'" }, 17 | { "open": "\"", "close": "\"" }, 18 | { "open": "`", "close": "`", "notIn": ["string", "comment"] }, 19 | { "open": "/*", "close": " */", "notIn": ["string"] }, 20 | { "open": "/**", "close": " */", "notIn": ["string"] }, 21 | { "open": "", "notIn": ["comment", "string"] }, 22 | { "open": "<%", "close": "%>" } 23 | ], 24 | "surroundingPairs": [ 25 | ["<", ">"], 26 | ["{", "}"], 27 | ["[", "]"], 28 | ["(", ")"], 29 | ["'", "'"], 30 | ["\"", "\""], 31 | ["`", "`"] 32 | ], 33 | "folding": { 34 | "markers": { 35 | "start": "^\\s*(?:<[%?][_-#]?(?:\\s*#)?region\\b.*[_-#]?[%?]>|)", 36 | "end": "^\\s*(?:<[%?][_-#]?(?:\\s*#)?endregion\\b.*[_-#]?[%?]>|)" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /language-configuration/env.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/expect.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ], 24 | "indentationRules": { 25 | "increaseIndentPattern": "^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$", 26 | "decreaseIndentPattern": "^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /language-configuration/flatbuffers.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /language-configuration/gnuplot.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [["{", "}"]], 6 | "autoClosingPairs": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"], 10 | { "open": "'", "close": "'", "notIn": ["string", "comment"] }, 11 | { "open": "`", "close": "`", "notIn": ["string", "comment"] }, 12 | { "open": "\"", "close": "\"", "notIn": ["string", "comment"] } 13 | ], 14 | "surroundingPairs": [ 15 | ["{", "}"], 16 | ["[", "]"], 17 | ["(", ")"], 18 | ["'", "'"], 19 | ["`", "`"], 20 | ["\"", "\""] 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /language-configuration/haml.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "-#", 4 | "blockComment": ["/", ""] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["\"", "\""], 16 | ["'", "'"], 17 | ["`", "`"] 18 | ], 19 | "surroundingPairs": [ 20 | ["{", "}"], 21 | ["[", "]"], 22 | ["(", ")"], 23 | ["\"", "\""], 24 | ["'", "'"], 25 | ["`", "`"] 26 | ], 27 | "indentationRules": { 28 | "increaseIndentPattern": "^s*(([-%#\\:\\.\\=])|(.*sdo\b))\b[^{;]*$" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /language-configuration/handlebars.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "blockComment": ["{{!--", "--}}"] 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"], 9 | ["'", "'"], 10 | ["\"", "\""] 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /language-configuration/hla.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"], 10 | ["#(", ")#"], 11 | ["#{", "}#"] 12 | ], 13 | "autoClosingPairs": [ 14 | { "open": "{", "close": "}" }, 15 | { "open": "[", "close": "]" }, 16 | { "open": "(", "close": ")" }, 17 | { "open": "#(", "close": ")#", "notIn": ["string", "comment"] }, 18 | { "open": "#{", "close": "}#", "notIn": ["string", "comment"] }, 19 | { "open": "\"", "close": "\"", "notIn": ["string"] }, 20 | { "open": "'", "close": "'", "notIn": ["string", "comment"] }, 21 | { "open": "/*", "close": "*/", "notIn": ["string"] } 22 | ], 23 | "surroundingPairs": [ 24 | ["{", "}"], 25 | ["[", "]"], 26 | ["(", ")"], 27 | ["\"", "\""], 28 | ["'", "'"], 29 | ["#(", ")#"], 30 | ["#{", "}#"], 31 | ["/*", "*/"] 32 | ], 33 | "indentationRules": { 34 | "increaseIndentPattern": "(?"] 7 | ], 8 | "autoClosingPairs": [ 9 | ["{", "}"], 10 | ["[", "]"], 11 | ["(", ")"], 12 | ["\"", "\""], 13 | ["'", "'"] 14 | ], 15 | "surroundingPairs": [ 16 | ["{", "}"], 17 | ["[", "]"], 18 | ["(", ")"], 19 | ["\"", "\""], 20 | ["'", "'"] 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /language-configuration/logstash.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/m3u.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/m4.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/mapfile.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "wordPattern": "[\\w.~%&$:\\\\+\\/-]+", 3 | "brackets": [ 4 | ["[", "]"], 5 | ["(", ")"], 6 | ["\"", "\""] 7 | ], 8 | "autoCloseBefore": ";:.,=])\n\t", 9 | "autoClosingPairs": [ 10 | { "open": "[", "close": "]" }, 11 | { "open": "(", "close": ")" }, 12 | { "open": "\"", "close": "\"", "notIn": ["string"] } 13 | ], 14 | "surroundingPairs": [ 15 | ["[", "]"], 16 | ["(", ")"], 17 | ["\"", "\""] 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /language-configuration/ninja.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["\"", "\""], 16 | ["'", "'"] 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"] 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /language-configuration/nix.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /language-configuration/odin.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "wordPattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)", 7 | "brackets": [ 8 | ["{", "}"], 9 | ["[", "]"], 10 | ["(", ")"] 11 | ], 12 | "autoCloseBefore": ";:.,=}])>` \n\t", 13 | "autoClosingPairs": [ 14 | { "open": "{", "close": "}" }, 15 | { "open": "[", "close": "]" }, 16 | { "open": "(", "close": ")" }, 17 | { "open": "'", "close": "'", "notIn": ["string", "comment"] }, 18 | { "open": "\"", "close": "\"", "notIn": ["string"] }, 19 | { "open": "`", "close": "`", "notIn": ["string", "comment"] }, 20 | { "open": "/*", "close": " */", "notIn": ["string"] } 21 | ], 22 | "surroundingPairs": [ 23 | ["{", "}"], 24 | ["[", "]"], 25 | ["(", ")"], 26 | ["\"", "\""], 27 | ["'", "'"], 28 | ["`", "`"] 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /language-configuration/pbxproj.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["\"", "\""], 16 | ["'", "'"] 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"] 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /language-configuration/po.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "# " 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/psqlrc.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "--" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/qlik.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"], 10 | ["<", ">"] 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /language-configuration/robots-txt.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "folding": { 6 | "markers": { 7 | "start": "^User-agent:", 8 | "end": "^\\s*$" 9 | } 10 | }, 11 | "indentationRules": { 12 | "increaseIndentPattern": "^User-agent:", 13 | "decreaseIndentPattern": "^\\s*$" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /language-configuration/stylus.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["\"", "\""], 16 | ["'", "'"] 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"] 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /language-configuration/sxhkdrc.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/systemd-unit.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [["[", "]"]], 6 | "autoClosingPairs": [ 7 | ["[", "]"], 8 | ["\"", "\""], 9 | ["'", "'"] 10 | ], 11 | "surroundingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["\"", "\""], 16 | ["'", "'"] 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /language-configuration/t4.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": {}, 3 | "brackets": [ 4 | ["<#", "#>"], 5 | ["<#=", "#>"], 6 | ["<#@", "#>"] 7 | ], 8 | "autoClosingPairs": [ 9 | ["{", "}"], 10 | ["[", "]"], 11 | ["(", ")"], 12 | ["\"", "\""], 13 | ["'", "'"], 14 | ["<#", "#>"] 15 | ], 16 | "surroundingPairs": [ 17 | ["<#", "#>"], 18 | ["<#+", "#>"], 19 | ["<#=", "#>"], 20 | ["<#@", "#>"] 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /language-configuration/tablegen.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["\"", "\""], 16 | ["'", "'"] 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"] 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /language-configuration/terminfo.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/textproto.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | { "open": "\"", "close": "\"", "notIn": ["string"] }, 15 | { "open": "'", "close": "'", "notIn": ["string"] } 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ], 24 | "indentationRules": { 25 | "increaseIndentPattern": "^.*(\\{|\\[)[^}'']*$", 26 | "decreaseIndentPattern": "^(.*\\*/)?\\s*(\\}|\\]).*$" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /language-configuration/thrift.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "blockComment": ["/*", "*/"], 4 | "lineComment": "#" 5 | }, 6 | "brackets": [ 7 | ["(", ")"], 8 | ["[", "]"], 9 | ["{", "}"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["(", ")"], 13 | ["[", "]"], 14 | ["{", "}"], 15 | ["\"", "\""] 16 | ], 17 | "surroundingPairs": [ 18 | ["(", ")"], 19 | ["[", "]"], 20 | ["{", "}"] 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /language-configuration/todo.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": {}, 3 | "brackets": [["(", ")"]], 4 | "autoClosingPairs": [ 5 | ["(", ")"], 6 | ["\"", "\""], 7 | ["'", "'"] 8 | ], 9 | "surroundingPairs": [ 10 | ["(", ")"], 11 | ["\"", "\""], 12 | ["'", "'"] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /language-configuration/typoscript.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | { "open": "{", "close": "}", "notIn": ["string"] }, 13 | { "open": "[", "close": "]", "notIn": ["string"] }, 14 | { "open": "(", "close": ")", "notIn": ["string"] }, 15 | { "open": "'", "close": "'", "notIn": ["string"] }, 16 | { "open": "\"", "close": "\"", "notIn": ["string", "comment"] } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /language-configuration/vcard.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "autoClosingPairs": [ 3 | ["{", "}"], 4 | ["[", "]"], 5 | ["(", ")"], 6 | ["\"", "\""] 7 | ], 8 | "surroundingPairs": [ 9 | ["{", "}"], 10 | ["[", "]"], 11 | ["(", ")"], 12 | ["\"", "\""] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /language-configuration/xdefaults.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "!" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /language-configuration/yarnlock.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /language-configuration/zone.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": ";" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /scripts/check-files.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import fs from 'node:fs' 3 | import path from 'node:path' 4 | 5 | const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8')) 6 | 7 | // Assert each file in syntaxes/* has an entry in package.json 8 | for (const file of fs.readdirSync('./syntaxes')) { 9 | const syntaxName = file.slice(0, file.length - '.tmLanguage.json'.length) 10 | /** @type {string[]} */ 11 | const allGrammars = packageJson.contributes.grammars 12 | .map((grammar) => { 13 | return grammar.language 14 | }) 15 | .filter((item) => typeof item === 'string') 16 | 17 | if ( 18 | [ 19 | 'bats.extended', 20 | 'bats.variables', 21 | 'ejs-nested', 22 | 'ejs', 23 | 'proto3.codeblock', 24 | 'textproto-codeblock', 25 | ].includes(syntaxName) 26 | ) { 27 | continue 28 | } 29 | 30 | if (!allGrammars.includes(syntaxName)) { 31 | console.error(`File '${file}' has no entry in packageJson.contributes.grammars`) 32 | process.exit(1) 33 | } 34 | } 35 | 36 | // Assert that each file in language-configuration/* has an entry in package.json 37 | for (const file of fs.readdirSync('./language-configuration')) { 38 | const langConfName = file.slice(0, file.length - '.language-configuration.json'.length) 39 | /** @type {string[]} */ 40 | const allLangConfNames = packageJson.contributes.languages 41 | .map((language) => { 42 | return language.id 43 | }) 44 | .filter((item) => typeof item === 'string') 45 | 46 | if (['ejs'].includes(langConfName)) { 47 | continue 48 | } 49 | 50 | if (!allLangConfNames.includes(langConfName)) { 51 | console.error(`File '${file}' has no entry in packageJson.contributes.languages`) 52 | process.exit(1) 53 | } 54 | } 55 | 56 | // Assert that each file in package.json exists 57 | { 58 | /** @type {string[]} */ 59 | const languageFiles = packageJson.contributes.languages.map( 60 | (language) => language.configuration, 61 | ) 62 | /** @type {string[]} */ 63 | const grammarFiles = packageJson.contributes.grammars.map((grammar) => grammar.path) 64 | 65 | for (const file of languageFiles 66 | .concat(grammarFiles) 67 | .filter((item) => typeof item === 'string')) { 68 | if (!fs.existsSync(file)) { 69 | console.error(`File '${file}' expected to exist`) 70 | process.exit(1) 71 | } 72 | } 73 | } 74 | 75 | // Assert that each grammar 'id' in package.json is a real grammar 76 | { 77 | /** @type {string[]} */ 78 | const languageIds = packageJson.contributes.languages 79 | .map((language) => language.id) 80 | .filter((item) => typeof item === 'string') 81 | const grammarIds = packageJson.contributes.grammars 82 | .map((grammar) => grammar.language) 83 | .filter((item) => typeof item === 'string') 84 | for (const grammarId of grammarIds) { 85 | if (!languageIds.includes(grammarId)) { 86 | console.error(`Grammar id '${grammarId}' expected to correspond to a language id`) 87 | } 88 | } 89 | } 90 | 91 | // Check for correct $schema property 92 | for (const filename of fs.readdirSync('./syntaxes')) { 93 | const filepath = path.join('syntaxes', filename) 94 | const tmLanguageJson = JSON.parse(await fs.readFileSync(filepath, 'utf-8')) 95 | if (tmLanguageJson.$schema !== 'https://json.schemastore.org/tmLanguage.json') { 96 | console.error(`File '${filepath}' has the incorrect $schema property`) 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /scripts/write-readme.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import fs from 'node:fs' 3 | 4 | const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8')) 5 | 6 | // Assert that README.md has all the stuff package.json has 7 | let str = '' 8 | { 9 | for (const language of packageJson.contributes.languages) { 10 | let extensionsStr = (language.extensions || []) 11 | .map((item) => `\`${item}\``) 12 | .join(', ') 13 | if (extensionsStr.length > 0) { 14 | extensionsStr = '(' + extensionsStr + ')' 15 | } 16 | str += `- ${language.id} ${extensionsStr}`.trim() + '\n' 17 | } 18 | } 19 | 20 | let readmeText = fs.readFileSync('README.md', 'utf-8') 21 | let result = readmeText.replace( 22 | /(?<=\n).*?(?=)/su, 23 | str, 24 | ) 25 | fs.writeFileSync('README.md', result) 26 | -------------------------------------------------------------------------------- /syntaxes/asl.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "ASL", 4 | "scopeName": "source.asl", 5 | "fileTypes": ["asl", "dsl"], 6 | "patterns": [ 7 | { 8 | "begin": "//", 9 | "end": "\\n", 10 | "name": "comment.line.double-slash.asl" 11 | }, 12 | { 13 | "begin": "/\\*", 14 | "end": "\\*/", 15 | "name": "comment.block.asl" 16 | }, 17 | { 18 | "match": "\"([^\\\\\"]|\\\\\\\\(x|X)[0-9a-fA-F]{1,2}|\\\\\\\\\\'|\\\\\\\\\"|\\\\\\\\a|\\\\\\\\b|\\\\\\\\f|\\\\\\\\n|\\\\\\\\r|\\\\\\\\t|\\\\\\\\v|\\\\\\\\\\\\\\\\|\\\\[0-7]{1,3})*\"", 19 | "name": "string.quoted.double.asl" 20 | }, 21 | { 22 | "match": "\\+|/|%|\\*|-|<<|>>|&|\\||\\^|~|\\+\\+|--", 23 | "name": "punctuation.math.asl" 24 | }, 25 | { 26 | "match": "==|!=|<|>|<=|>=|&&|\\|\\||!", 27 | "name": "punctuation.logical.asl" 28 | }, 29 | { 30 | "match": "=|\\+=|/=|%=|\\*=|-=|<<=|>>=|&=|\\|=|\\^=", 31 | "name": "punctuation.assign.asl" 32 | }, 33 | { 34 | "match": "\\[|\\]|\\(|\\)|\\{|\\}", 35 | "name": "meta.brackets.asl" 36 | }, 37 | { 38 | "match": "\\b(AccessAs|Acquire|Add|Alias|And|Arg[0-9]|BankField|Break|BreakPoint|Buffer|Case|Concatenate|ConcatenateResTemplate|CondRefOf|Connection|Continue|CopyObject|CreateBitField|CreateByteField|CreateDWordField|CreateField|CreateQWordField|CreateWordField|DataTableRegion|Debug|Decrement|Default|DefinitionBlock|DerefOf|Device|Divide|DMA|DWordIO|DWordMemory|DWordSpace|EisaId|Else|ElseIf|EndDependentFn|Event|ExtendedIO|ExtendedMemory|ExtendedSpace|External|Fatal|Field|FindSetLeftBit|FindSetRightBit|FixedDMA|FixedIO|Fprintf|FromBCD|Function|GpioInt|GpioIo|I2CSerialBusV2|If|Include|Increment|Index|IndexField|Interrupt|IO|IRQ|IRQNoFlags|LAnd|LEqual|LGreater|LGreaterEqual|LLess|LLessEqual|LNot|LNotEqual|Load|LoadTable|Local[0-9]|LOr|Match|Memory24|Memory32|Memory32Fixed|Method|Mid|Mod|Multiply|Mutex|Name|NAnd|NoOp|NOr|Not|Notify|ObjectType|Offset|OperationRegion|Or|Package|PowerResource|Printf|Processor|QWordIO|QWordMemory|QWordSpace|RawDataBuffer|RefOf|Register|Release|Reset|ResourceTemplate|Return|Scope|ShiftLeft|ShiftRight|Signal|SizeOf|Sleep|SPISerialbusV2|Stall|StartDependentFn|StartDependentFnNoPri|Store|Subtract|Switch|ThermalZone|Timer|ToBCD|ToBuffer|ToDecimalString|ToHexString|ToInteger|ToPLD|ToString|ToUUID|Unicode|Unload|UARTSerialBusV2|VendorLong|VendorShort|Wait|While|WordBusNumber|WordIO|WordSpace|Xor)\\b", 39 | "name": "support.function.any-method.asl" 40 | }, 41 | { 42 | "match": "\\b(_AC[0-9]|_ADR|_AEI|_ALC|_ALI|_ALN|_ALP|_ALR|_ALT|_ART|_ASI|_ASZ|_ATT|_BAS|_BBN|_BCL|_BCM|_BCT|_BDN|_BIF|_BI[0-9]|_BLT|_BM|_BMA|_BMC|_BMD|_BMS|_BQC|_BST|_BTH|_BTM|_BTP|_CBA|_CDM|_CID|_CLS|_CPC|_CRS|_CRT|_CSD|_CST|_CWS|_DBT|_DCK|_DCS|_DDC|_DDN|_DEC|_DEP|_DGS|_DIS|_DLM|_DMA|_DOS|_DPL|_DRS|_DSD|_DSM|_DSS|_DSW|_DTI|_E[0-9][0-9]|_EC|_EDL|_EJD|_EJ[0-9]|_END|_EVT|_FDE|_FDI|_FDM|_FIF|_FIT|_FI[0-9]|_FLC|_FPS|_FSL|_GAI|_GCP|_GHL|_GL|_GLK|_GPD|_GPE|_GRA|_GRT|_GSB|_GTF|_GTM|_GWS|_HE|_HID|_HOT|_HPP|_HP[0-9]|_HRV|_IFT|_INI|_IOR|_IRC|_L[0-9][0-9]|_LCK|_LEN|_LID|_LIN|_LL|_LPI|_MAF|_MAT|_MA[0-9]|_MBM|_MEM|_MIF|_MIN|_MLS|_MOD|_MSG|_MSM|_MTL|_MTP|_NTT|_OFF|_ON|_OS|_OSI|_OST|_PAI|_PAR|_PCL|_PCT|_PDC|_PDL|_PHA|_PIC|_PIF|_PIN|_PLD|_PMC|_PMD|_PMM|_POL|_PPC|_PPE|_PPI|_PR|_PR0|_PR2|_PR3|_PRE|_PRL|_PRR|_PRS|_PRT|_PRW|_PS0|_PS1|_PS2|_PS3|_PSC|_PSD|_PSE|_PSL|_PSR|_PSS|_PSV|_PSW|_PTC|_PTP|_PTS|_PUR|_P[0-9]M|_RBO|_RBW|_RDI|_REG|_REV|_RMV|_RNG|_ROM|_RST|_RT|_RTV|_RW|_R[0-9]L|_S0|_S1|_S2|_S3|_S4|_S5|_S1D|_S2D|_S3D|_S4D|_S1W|_S2W|_S3W|_S4W|_SB|_SBS|_SCP|_SDD|_SEG|_SHL|_SHR|_SI|_SIZ|_SLI|_SLV|_SPD|_SPE|_SRS|_SRT|_SRV|_STA|_STB|_STM|_STR|_STV|_SUB|_SUN|_SWS|_T_[0-9]|_TC1|_TC2|_TDL|_TFP|_TIP|_TIV|_TMP|_TPC|_TPT|_TRA|_TRS|_TRT|_TSD|_TSF|_TSN|_TSP|_TSS|_TTP|_TTS|_T[0-9]L|_TYP|_TZ|_TZD|_TZM|_TZP|_UID|_UPC|_UPD|_UPP|_VEN|_VPO|_WAK|_W[0-9][0-9])\\b", 43 | "name": "variable.other.asl" 44 | }, 45 | { 46 | "match": "\\b(AttribQuick|AttribSendReceive|AttribByte|AttribBytes|AttribRawBytes|AttribRawProcessBytes|AttribWord|AttribBlock|AttribProcessCall|AttribBlockProcessCall|AnyAcc|ByteAcc|WordAcc|DWordAcc|QWordAcc|BufferAcc|AddressRangeMemory|AddressRangeReserved|AddressRangeNVS|AddressRangeACPI|RegionSpaceKeyword|FFixedHW|PCC|AddressingMode7Bit|AddressingMode10Bit|DataBitsFive|DataBitsSix|DataBitsSeven|DataBitsEight|DataBitsNine|BusMaster|NotBusMaster|ClockPhaseFirst|ClockPhaseSecond|ClockPolarityLow|ClockPolarityHigh|SubDecode|PosDecode|BigEndianing|LittleEndian|FlowControlNone|FlowControlXon|FlowControlHardware|Edge|Level|ActiveHigh|ActiveLow|ActiveBoth|Decode16|Decode10|IoRestrictionNone|IoRestrictionInputOnly|IoRestrictionOutputOnly|IoRestrictionNoneAndPreserve|Lock|NoLock|MTR|MEQ|MLE|MLT|MGE|MGT|MaxFixed|MaxNotFixed|Cacheable|WriteCombining|Prefetchable|NonCacheable|MinFixed|MinNotFixed|UnknownObj|IntObj|StrObj|BuffObj|PkgObj|FieldUnitObj|DeviceObj|EventObj|MethodObj|MutexObj|OpRegionObj|PowerResObj|ProcessorObj|ThermalZoneObj|BuffFieldObj|DDBHandleObj|ParityTypeNone|ParityTypeSpace|ParityTypeMark|ParityTypeOdd|ParityTypeEven|PullDefault|PullUp|PullDown|PullNone|PolarityHigh|PolarityLow|ISAOnlyRanges|NonISAOnlyRanges|EntireRange|ReadWrite|ReadOnly|UserDefRegionSpace|SystemIO|SystemMemory|PCI_Config|EmbeddedControl|SMBus|SystemCMOS|PciBarTarget|IPMI|GeneralPurposeIO|GenericSerialBus|ResourceConsumer|ResourceProducer|Serialized|NotSerialized|Shared|Exclusive|SharedAndWake|ExclusiveAndWake|ControllerInitiated|DeviceInitiated|StopBitsZero|StopBitsOne|StopBitsOnePlusHalf|StopBitsTwo|Width8Bit|Width16Bit|Width32Bit|Width64Bit|Width128Bit|Width256Bit|SparseTranslation|DenseTranslation|TypeTranslation|TypeStatic|Preserve|WriteAsOnes|WriteAsZeros|Transfer8|Transfer16|Transfer8_16|ThreeWireMode|FourWireMode)\\b", 47 | "name": "keyword.other.asl" 48 | }, 49 | { 50 | "match": "\\b((0(x|X)[0-9a-fA-F]+)|(0[0-7]+)|[0-9]|One|Ones|Zero)\\b", 51 | "name": "constant.numeric.asl" 52 | }, 53 | { 54 | "match": "\\b(Revision)\\b", 55 | "name": "constant.other.asl" 56 | } 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /syntaxes/awk-regexp.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Regexp", 4 | "scopeName": "source.awk.regexp", 5 | "injectionSelector": "L:string.regexp.js -meta.embedded.regexp", 6 | "patterns": [ 7 | { 8 | "begin": "(?[=(:,\\[?+!]|(?>^|[^._$[:alnum:]])(?>return|case)|=>|&&|\\|\\||\\*/)\\s*\\/)(?![\\/*])", 9 | "end": "(?=/|$)", 10 | "name": "meta.embedded.regexp", 11 | "patterns": [{ "include": "#regexp" }] 12 | } 13 | ], 14 | "repository": { 15 | "regexp": { 16 | "patterns": [ 17 | { 18 | "name": "keyword.control.anchor.regexp", 19 | "match": "\\\\[bB]|\\^|\\$" 20 | }, 21 | { 22 | "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", 23 | "captures": { 24 | "0": { "name": "keyword.other.back-reference.regexp" }, 25 | "1": { "name": "variable.other.regexp" } 26 | } 27 | }, 28 | { 29 | "name": "keyword.operator.quantifier.regexp", 30 | "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" 31 | }, 32 | { 33 | "name": "keyword.operator.or.regexp", 34 | "match": "\\|" 35 | }, 36 | { 37 | "name": "meta.group.assertion.regexp", 38 | "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?", 54 | "beginCaptures": { 55 | "0": { "name": "punctuation.definition.group.regexp" }, 56 | "1": { "name": "punctuation.definition.group.no-capture.regexp" }, 57 | "2": { "name": "variable.other.regexp" } 58 | }, 59 | "end": "\\)|(?=/)", 60 | "endCaptures": { "0": { "name": "punctuation.definition.group.regexp" } }, 61 | "patterns": [{ "include": "#regexp" }] 62 | }, 63 | { 64 | "name": "constant.other.character-class.set.regexp", 65 | "begin": "(\\[)(\\^)?", 66 | "beginCaptures": { 67 | "1": { "name": "punctuation.definition.character-class.regexp" }, 68 | "2": { "name": "keyword.operator.negation.regexp" } 69 | }, 70 | "end": "(\\])", 71 | "endCaptures": { 72 | "1": { "name": "punctuation.definition.character-class.regexp" } 73 | }, 74 | "comment": "as a temporary measure; because balancedBracketScopes, unbalancedBracketScopes and tokenTypes don't seem to work with injected grammars", 75 | "contentName": "regex", 76 | "patterns": [ 77 | { 78 | "name": "constant.other.character-class.range.regexp", 79 | "match": "(?>(\\\\(?>[0-7]{3}|x\\h{2}|u\\h{4}))|(\\\\c[A-Z])|(\\\\.)|.)-(?>(\\\\(?>[0-7]{3}|x\\h{2}|u\\h{4}))|(\\\\c[A-Z])|(\\\\.)|[^\\]\\\\])", 80 | "captures": { 81 | "1": { "name": "constant.character.numeric.regexp" }, 82 | "2": { "name": "constant.character.control.regexp" }, 83 | "3": { "name": "constant.character.escape.backslash.regexp" }, 84 | "4": { "name": "constant.character.numeric.regexp" }, 85 | "5": { "name": "constant.character.control.regexp" }, 86 | "6": { "name": "constant.character.escape.backslash.regexp" } 87 | } 88 | }, 89 | { "include": "#regex-character-class" } 90 | ] 91 | }, 92 | { "include": "#regex-character-class" }, 93 | { 94 | "match": "\\)", 95 | "name": "punctuation.definition.group.regexp" 96 | }, 97 | { 98 | "match": "[^$^.+*?|\\[{()\\\\/]+", 99 | "name": "string.regexp.js" 100 | }, 101 | { 102 | "match": ".+", 103 | "name": "invalid report.to.RedCMD" 104 | } 105 | ] 106 | }, 107 | "regex-character-class": { 108 | "patterns": [ 109 | { 110 | "name": "constant.other.character-class.regexp", 111 | "match": "\\\\[wWsSdDtrnvf]|\\." 112 | }, 113 | { 114 | "name": "constant.character.numeric.regexp", 115 | "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" 116 | }, 117 | { 118 | "name": "constant.character.control.regexp", 119 | "match": "\\\\c[A-Z]" 120 | }, 121 | { 122 | "name": "constant.character.escape.backslash.regexp", 123 | "match": "\\\\." 124 | } 125 | ] 126 | } 127 | }, 128 | "version": "https://github.com/RedCMD/regex-syntax-highlighter-vscode" 129 | } 130 | -------------------------------------------------------------------------------- /syntaxes/bats.extended.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "scopeName": "source.shell.bats.extended", 4 | "injectionSelector": "L:source.shell.bats -string -comment", 5 | "patterns": [ 6 | { 7 | "match": "@test\\b", 8 | "name": "keyword.control.bats" 9 | }, 10 | { 11 | "match": "\\b(run|load|bats_load_library|skip|setup|teardown|setup_file|teardown_file)\\b", 12 | "name": "support.function.bats.builtin" 13 | }, 14 | { 15 | "match": "\\b(fail|batslib_(err|count_lines|is_single_line|get_max_single_line_key_width|print_kv_single|print_kv_multi|print_kv_single_or_multi|prefix|mark|is_caller|err|decorate))\\b", 16 | "name": "support.function.bats.assertions" 17 | }, 18 | { 19 | "match": "\\b(assert|refute|assert_(equal|not_equal|success|failure|output|line)|refute_(output|line))\\b", 20 | "name": "support.function.bats.assertions" 21 | }, 22 | { 23 | "match": "\\b(stub|unstub)\\b", 24 | "name": "support.function.bats.assertions" 25 | }, 26 | { 27 | "match": "\\b(assert_((((file|dir|link|block|character|socket|fifo)_)?(not_)?exist)|(file_((not_)?(executable|owner|group_id_set|user_id_set|empty|permission))|not_file_permission)|file_size_equals|size_(not_)?zero|(no_|not_)?sticky_bit|file_contains|(not_)?symlink_to))\\b", 28 | "name": "support.function.bats.assertions" 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /syntaxes/bats.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Bats", 4 | "scopeName": "source.shell.bats", 5 | "uuid": "D001D6FC-04A3-4BB6-9588-A6BCE46DDEDB", 6 | "keyEquivalent": "^~B", 7 | "fileTypes": ["bats"], 8 | "foldingStartMarker": "\\b(if|case)\\b|(\\{|\\b(do)\\b)$", 9 | "foldingStopMarker": "^\\s*(\\}|(done|fi|esac)\\b)", 10 | "patterns": [ 11 | { 12 | "include": "source.shell" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /syntaxes/bats.variables.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "scopeName": "source.shell.bats.variables", 4 | "injectionSelector": "L:source.shell.bats -comment", 5 | "patterns": [ 6 | { 7 | "match": "\\$(output|status|lines|stderr|stderr_lines)\\b", 8 | "name": "support.variable.bats" 9 | }, 10 | { 11 | "match": "\\$BATS_(RUN_COMMAND|TEST_(FILENAME|DIRNAME|NAMES?|DESCRIPTION)|(SUITE_)?TEST_NUMBER|((RUN|FILE|SUITE|TEST)_)?TMPDIR|FILE_EXTENSION|VERSION)\\b", 12 | "name": "support.variable.bats" 13 | }, 14 | { 15 | "match": "\\$\\{#?(output|status|lines|stderr|stderr_lines)\\b", 16 | "captures": { 17 | "1": { 18 | "name": "support.variable.bats" 19 | } 20 | } 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /syntaxes/desktop.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Desktop", 4 | "scopeName": "source.desktop", 5 | "patterns": [ 6 | { 7 | "include": "#layout" 8 | }, 9 | { 10 | "include": "#keywords" 11 | }, 12 | { 13 | "include": "#values" 14 | }, 15 | { 16 | "include": "#inCommands" 17 | }, 18 | { 19 | "include": "#inCategories" 20 | } 21 | ], 22 | "repository": { 23 | "layout": { 24 | "patterns": [ 25 | { 26 | "name": "markup.heading", 27 | "begin": "^\\[Desktop", 28 | "end": "\\]" 29 | }, 30 | { 31 | "name": "markup.heading", 32 | "begin": "^\\[X-\\w*", 33 | "end": "\\]" 34 | }, 35 | { 36 | "name": "comment", 37 | "match": "^\\s*#.*" 38 | }, 39 | { 40 | "name": "strong", 41 | "match": ";" 42 | } 43 | ] 44 | }, 45 | "keywords": { 46 | "patterns": [ 47 | { 48 | "name": "keyword", 49 | "match": "^Type\\b|^Version\\b|^Name\\b|^GenericName\\b|^NoDisplay\\b|^Comment\\b|^Icon\\b|^Hidden\\b|^OnlyShowIn\\b|^NotShowIn\\b|^DBusActivatable\\b|^TryExec\\b|^Exec\\b|^Path\\b|^Terminal\\b|^Actions\\b|^MimeType\\b|^Categories\\b|^Implements\\b|^Keywords\\b|^StartupNotify\\b|^StartupWMClass\\b|^URL\\b|^PrefersNonDefaultGPU\\b|^Encoding\\b" 50 | }, 51 | { 52 | "name": "keyword.other", 53 | "match": "^X-[A-z 0-9 -]*" 54 | }, 55 | { 56 | "name": "constant.language", 57 | "match": "(?)" 59 | }, 60 | { 61 | "name": "support.function.edk2_dec", 62 | "match": "(?<=\\$\\()[a-zA-Z0-9_]+(?=\\))" 63 | }, 64 | { 65 | "name": "comment.line.number-sign.edk2_dec", 66 | "begin": "#", 67 | "end": "\n" 68 | } 69 | ] 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /syntaxes/edk2_dsc.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "source.edk2_dsc", 4 | "scopeName": "source.edk2_dsc", 5 | "patterns": [ 6 | { 7 | "include": "#edk2_dsc_color" 8 | } 9 | ], 10 | "repository": { 11 | "edk2_dsc_color": { 12 | "patterns": [ 13 | { 14 | "name": "variable.language.edk2_dsc", 15 | "match": "((?)" 63 | }, 64 | { 65 | "name": "support.function.edk2_dsc", 66 | "match": "(?<=\\$\\()[a-zA-Z0-9_]+(?=\\))" 67 | }, 68 | { 69 | "name": "comment.line.number-sign.edk2_dsc", 70 | "begin": "#", 71 | "end": "\n" 72 | } 73 | ] 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /syntaxes/edk2_fdf.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "source.edk2_fdf", 4 | "scopeName": "source.edk2_fdf", 5 | "patterns": [ 6 | { 7 | "include": "#edk2_fdf_color" 8 | } 9 | ], 10 | "repository": { 11 | "edk2_fdf_color": { 12 | "patterns": [ 13 | { 14 | "//": "TO-DO: Too much specific keywords in FDF, should revisit for finding better way of color syntax." 15 | }, 16 | { 17 | "name": "variable.language.edk2_fdf", 18 | "match": "((?)" 74 | }, 75 | { 76 | "name": "support.function.edk2_fdf", 77 | "match": "(?<=\\$\\()[a-zA-Z0-9_]+(?=\\))" 78 | }, 79 | { 80 | "name": "comment.line.number-sign.edk2_fdf", 81 | "begin": "#|//", 82 | "end": "\n" 83 | } 84 | ] 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /syntaxes/edk2_inf.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "source.edk2_inf", 4 | "scopeName": "source.edk2_inf", 5 | "patterns": [ 6 | { 7 | "include": "#edk2_inf_color" 8 | } 9 | ], 10 | "repository": { 11 | "edk2_inf_color": { 12 | "patterns": [ 13 | { 14 | "name": "variable.language.edk2_inf", 15 | "match": "((?)" 51 | }, 52 | { 53 | "name": "support.function.edk2_inf", 54 | "match": "(?<=\\$\\()[a-zA-Z0-9_]+(?=\\))" 55 | }, 56 | { 57 | "name": "comment.line.number-sign.edk2_inf", 58 | "begin": "#", 59 | "end": "\n" 60 | } 61 | ] 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /syntaxes/edk2_uni.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "source.edk2_uni", 4 | "scopeName": "source.edk2_uni", 5 | "patterns": [ 6 | { 7 | "include": "#edk2_uni_color" 8 | }, 9 | { 10 | "include": "source.c" 11 | } 12 | ], 13 | "repository": { 14 | "edk2_uni_color": { 15 | "patterns": [ 16 | { 17 | "name": "variable.language.edk2_uni", 18 | "match": "(?<=\\#)(string|language|langdef|fontdef|font)" 19 | } 20 | ] 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /syntaxes/edk2_vfr.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "source.edk2_vfr", 4 | "scopeName": "source.edk2_vfr", 5 | "patterns": [ 6 | { 7 | "include": "#edk2_vfr_color" 8 | }, 9 | { 10 | "include": "source.c" 11 | } 12 | ], 13 | "repository": { 14 | "edk2_vfr_color": { 15 | "patterns": [ 16 | { 17 | "name": "variable.language.edk2_vfr", 18 | "match": "((?)", 8 | "beginCaptures": { 9 | "0": { 10 | "name": "punctuation.definition.tag.end.ejs" 11 | }, 12 | "1": { 13 | "name": "text.html.ejs.override-js" 14 | } 15 | }, 16 | "end": "(<)(%|\\?)(?![%#])[_=-]?", 17 | "endCaptures": { 18 | "0": { 19 | "name": "punctuation.definition.tag.begin.ejs" 20 | }, 21 | "1": { 22 | "name": "text.html.ejs.override-js" 23 | } 24 | }, 25 | "contentName": "text.html.ejs.override-js", 26 | "patterns": [ 27 | { 28 | "include": "text.html.ejs" 29 | } 30 | ] 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /syntaxes/ejs.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Embedded Javascript", 4 | "scopeName": "text.html.ejs", 5 | "injectionSelector": "L:text.html", 6 | "patterns": [ 7 | { 8 | "include": "#tag-block-comment" 9 | }, 10 | { 11 | "include": "#tag-single-line-section-comment" 12 | }, 13 | { 14 | "include": "#tag-section-comment" 15 | }, 16 | { 17 | "include": "#tag-ejs-single-line" 18 | }, 19 | { 20 | "include": "#tag-ejs-multi-line" 21 | } 22 | ], 23 | "repository": { 24 | "tag-block-comment": { 25 | "begin": "<[%?]#", 26 | "beginCaptures": { 27 | "0": { 28 | "name": "punctuation.definition.comment.ejs" 29 | } 30 | }, 31 | "end": "[%?]>", 32 | "endCaptures": { 33 | "0": { 34 | "name": "punctuation.definition.comment.ejs" 35 | } 36 | }, 37 | "name": "comment.block.ejs" 38 | }, 39 | "tag-single-line-section-comment": { 40 | "begin": "(<[%?](?:(?!php))[%_=-]?)\\s*((/\\*)(.*)(\\*/))(?=(\\s*([%?]>)))", 41 | "captures": { 42 | "1": { 43 | "name": "keyword.operator.relational.js" 44 | }, 45 | "3": { 46 | "name": "punctuation.definition.comment.ejs" 47 | }, 48 | "5": { 49 | "name": "punctuation.definition.comment.ejs" 50 | }, 51 | "2": { 52 | "name": "comment.block.ejs" 53 | } 54 | }, 55 | "end": "([%?]>)", 56 | "endCaptures": { 57 | "1": { 58 | "name": "keyword.operator.relational.js" 59 | } 60 | }, 61 | "contentName": "comment.block.ejs", 62 | "name": "meta.block.single.comment.ejs" 63 | }, 64 | "tag-section-comment": { 65 | "name": "comment.block.ejs", 66 | "begin": "(<[%?](?:(?!php)))\\s*((?=(/\\*)))", 67 | "beginCaptures": { 68 | "1": { 69 | "name": "keyword.operator.relational.js" 70 | } 71 | }, 72 | "end": "(\\*/)\\s*([%?]>)", 73 | "endCaptures": { 74 | "1": { 75 | "name": "punctuation.definition.comment.ejs" 76 | }, 77 | "2": { 78 | "name": "keyword.operator.relational.js" 79 | } 80 | }, 81 | "patterns": [ 82 | { 83 | "name": "ejs-end-tag", 84 | "match": "([%?]>)", 85 | "captures": { 86 | "1": { 87 | "name": "keyword.operator.relational.js" 88 | } 89 | } 90 | }, 91 | { 92 | "name": "ejs-begin-tag", 93 | "match": "(<[%?](?:(?!php)))", 94 | "captures": { 95 | "1": { 96 | "name": "keyword.operator.relational.js" 97 | } 98 | } 99 | }, 100 | { 101 | "include": "text.html.ejs" 102 | } 103 | ] 104 | }, 105 | "tag-ejs-single-line": { 106 | "name": "meta.tag.metadata.script.ejs", 107 | "begin": "(<[%?](?:(?!php))[%_=-]?)(?!(\\s*\\*/))(((?!([_-]?[%?]>)).)+)(?=([_-]?[%?]>))", 108 | "beginCaptures": { 109 | "0": { 110 | "contentName": "source.js", 111 | "name": "meta.embedded.*" 112 | }, 113 | "1": { 114 | "name": "keyword.operator.relational.js" 115 | }, 116 | "3": { 117 | "name": "meta.embedded.ejs", 118 | "contentName": "source.js", 119 | "patterns": [ 120 | { 121 | "include": "source.js" 122 | } 123 | ] 124 | }, 125 | "6": { 126 | "name": "keyword.operator.relational.js" 127 | } 128 | }, 129 | "end": "(([_-]?[%?]>))", 130 | "endCaptures": { 131 | "1": { 132 | "name": "keyword.operator.relational.js" 133 | } 134 | } 135 | }, 136 | "tag-ejs-multi-line": { 137 | "contentName": "source.js", 138 | "name": "meta.block.ejs", 139 | "begin": "(<[%?](?:(?!php))[%_=-]?)(?!(\\s*\\*/))", 140 | "beginCaptures": { 141 | "1": { 142 | "name": "keyword.operator.relational.js" 143 | }, 144 | "3": { 145 | "name": "meta.embedded.ejs", 146 | "contentName": "source.js", 147 | "patterns": [ 148 | { 149 | "include": "source.js" 150 | } 151 | ] 152 | } 153 | }, 154 | "end": "(([_-]?[%?]>))", 155 | "endCaptures": { 156 | "1": { 157 | "name": "keyword.operator.relational.js" 158 | } 159 | }, 160 | "patterns": [ 161 | { 162 | "include": "source.js" 163 | } 164 | ] 165 | } 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /syntaxes/env.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "scopeName": "source.env", 4 | "patterns": [ 5 | { 6 | "comment": "Comments", 7 | "match": "^\\s?(#.*$)\\n", 8 | "captures": { 9 | "1": { 10 | "patterns": [ 11 | { 12 | "include": "#reminder" 13 | } 14 | ] 15 | } 16 | } 17 | }, 18 | { 19 | "comment": "Entries", 20 | "match": "^\\s?(export\\s?)*([\\w]+)\\s?(\\=)(.*)$", 21 | "captures": { 22 | "1": { 23 | "name": "keyword.other.env" 24 | }, 25 | "2": { 26 | "name": "variable.other.env" 27 | }, 28 | "3": { 29 | "name": "keyword.operator.assignment.env" 30 | }, 31 | "4": { 32 | "patterns": [ 33 | { 34 | "include": "#boolean" 35 | }, 36 | { 37 | "include": "#numeric" 38 | }, 39 | { 40 | "include": "#string" 41 | }, 42 | { 43 | "include": "#interpolated" 44 | }, 45 | { 46 | "include": "#unquoted" 47 | } 48 | ] 49 | } 50 | } 51 | } 52 | ], 53 | "repository": { 54 | "reminder": { 55 | "comment": "Reminder - starts with #", 56 | "match": "(#).*", 57 | "name": "comment.line.number-sign.env", 58 | "captures": { 59 | "1": { 60 | "name": "punctuation.definition.comment.env" 61 | } 62 | } 63 | }, 64 | "boolean": { 65 | "comment": "Boolean Constants", 66 | "match": "(?i)\\b(true|false|null)\\b(.*)", 67 | "captures": { 68 | "1": { 69 | "name": "constant.language.env" 70 | }, 71 | "2": { 72 | "patterns": [ 73 | { 74 | "include": "#reminder" 75 | } 76 | ] 77 | } 78 | } 79 | }, 80 | "numeric": { 81 | "comment": "Numeric", 82 | "match": "(?:\\+|-)?\\b((?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\.?[0-9]*)|(?:\\.[0-9]+))(?:(?:e|E)(?:\\+|-)?[0-9]+)?)\\b(.*)", 83 | "captures": { 84 | "1": { 85 | "name": "constant.numeric.env" 86 | }, 87 | "2": { 88 | "patterns": [ 89 | { 90 | "include": "#reminder" 91 | } 92 | ] 93 | } 94 | } 95 | }, 96 | "string": { 97 | "comment": "Strings (single)", 98 | "name": "string.quoted.single.env", 99 | "begin": "(?|<=|>=|!=)" 35 | }, 36 | { 37 | "name": "keyword.other.expect", 38 | "match": "\\s(\\-\\w+)\\s" 39 | } 40 | ] 41 | }, 42 | "comment": { 43 | "patterns": [ 44 | { 45 | "name": "comment.expect", 46 | "match": "^\\s*(#).*$\\n?" 47 | } 48 | ] 49 | }, 50 | "function": { 51 | "patterns": [ 52 | { 53 | "name": "entity.name.function.expect", 54 | "match": "(?<=^|{)\\s*(proc)\\s+([^\\s]+)" 55 | } 56 | ] 57 | }, 58 | "variable": { 59 | "patterns": [ 60 | { 61 | "name": "variable.expect", 62 | "match": "(\\$[\\w{}\\-\\_]+)" 63 | } 64 | ] 65 | }, 66 | "constant": { 67 | "patterns": [ 68 | { 69 | "name": "constant.numeric.expect", 70 | "match": "(?=|>|//|/|\\?" 59 | } 60 | ] 61 | }, 62 | "strings": { 63 | "name": "string.quoted.double", 64 | "begin": "\"", 65 | "end": "\"", 66 | "patterns": [ 67 | { 68 | "name": "constant.character.escape", 69 | "match": "\\\\." 70 | } 71 | ] 72 | }, 73 | "literals": { 74 | "patterns": [ 75 | { 76 | "name": "constant.numeric", 77 | "match": "\\b\\d+(\\.\\d+)?" 78 | } 79 | ] 80 | }, 81 | "identifiers": { 82 | "patterns": [ 83 | { 84 | "name": "variable.language", 85 | "match": "(?|├(─)+|└(─)+", 82 | "name": "comment.line" 83 | } 84 | ] 85 | } 86 | -------------------------------------------------------------------------------- /syntaxes/logstash.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Logstash", 4 | "scopeName": "text.logstash", 5 | "uuid": "ca03e751-04ef-4330-9a6b-9b99aae1c418", 6 | "fileTypes": ["logstash.conf", "logstash.conf.j2", "logstash.conf.template"], 7 | "patterns": [ 8 | { 9 | "comment": "classes: inputs, codecs, filters and outputs", 10 | "match": "^(input|filter|codec|output)", 11 | "name": "entity.name.type.class.logstash" 12 | }, 13 | { 14 | "captures": { 15 | "2": { 16 | "name": "keyword.operator.logstash" 17 | }, 18 | "5": { 19 | "name": "entity.name.function.logstash" 20 | } 21 | }, 22 | "comment": "complex if/else if statements", 23 | "match": "((and|or)(\\s+)(\\[)(\\w*)(\\]))+", 24 | "name": "text.logstash" 25 | }, 26 | { 27 | "comment": "Operators", 28 | "match": "(==|!=|<|>|<=|>=|=~|!~|in|not in|and|or|nand|xor|!)", 29 | "name": "keyword.operator.logstash" 30 | }, 31 | { 32 | "captures": { 33 | "2": { 34 | "name": "entity.name.function.logstash" 35 | } 36 | }, 37 | "comment": "Groked Field", 38 | "match": "(%{)(\\w*)(})", 39 | "name": "entity.name.function.logstash" 40 | }, 41 | { 42 | "comment": "Double quoted string values", 43 | "begin": "\"", 44 | "end": "\"", 45 | "patterns": [ 46 | { 47 | "match": "\\\\\"" 48 | }, 49 | { 50 | "match": "[^\"]" 51 | } 52 | ], 53 | "name": "string.text.logstash" 54 | }, 55 | { 56 | "comment": "Single quoted string values", 57 | "begin": "'", 58 | "end": "'", 59 | "patterns": [ 60 | { 61 | "match": "\\\\'" 62 | }, 63 | { 64 | "match": "[^']" 65 | } 66 | ], 67 | "name": "string.text.logstash" 68 | }, 69 | { 70 | "captures": { 71 | "1": { 72 | "name": "keyword.control.logstash" 73 | }, 74 | "4": { 75 | "name": "entity.name.function.logstash" 76 | }, 77 | "7": { 78 | "name": "keyword.operator.logstash" 79 | } 80 | }, 81 | "comment": "if/else if statements", 82 | "match": "(if|else if)(\\s+)(\\[)(\\w*)(\\])(\\s*)(==|!=|<|>|<=|>=|=~|!~|in|not in|!)", 83 | "name": "text.logstash" 84 | }, 85 | { 86 | "captures": { 87 | "1": { 88 | "name": "keyword.control.logstash" 89 | } 90 | }, 91 | "comment": "else statements", 92 | "match": "(else)(\\s+)({)", 93 | "name": "text.logstash" 94 | }, 95 | { 96 | "captures": { 97 | "2": { 98 | "name": "entity.name.function.logstash" 99 | }, 100 | "5": { 101 | "name": "variable.text.logstash" 102 | }, 103 | "7": { 104 | "name": "keyword.operator.logstash" 105 | } 106 | }, 107 | "comment": "functions: types of inputs, codecs, filters and outputs", 108 | "match": "^(\\s*)(\\w+)(\\s*{)(\\s*)?(\\w+)?(\\s*)?(=>)?(\\s*)?", 109 | "name": "text.logstash" 110 | }, 111 | { 112 | "comment": "Comments", 113 | "match": "^(\\s*)?#.+", 114 | "name": "comment.line.number-sign.logstash" 115 | }, 116 | { 117 | "captures": { 118 | "2": { 119 | "name": "variable.text.logstash" 120 | }, 121 | "4": { 122 | "name": "keyword.operator.logstash" 123 | }, 124 | "6": { 125 | "name": "constant.numeric.logstash" 126 | } 127 | }, 128 | "comment": "Variables: Number values", 129 | "match": "^(\\s*)?(\\w+)(\\s*)?(=>)(\\s*)?(\\d+)", 130 | "name": "keyword.text.logstash" 131 | }, 132 | { 133 | "captures": { 134 | "2": { 135 | "name": "variable.text.logstash" 136 | }, 137 | "4": { 138 | "name": "keyword.operator.logstash" 139 | } 140 | }, 141 | "comment": "Variables: String values", 142 | "match": "^(\\s*)?(\\w+)(\\s*)?(=>)(\\s*)?", 143 | "name": "keyword.text.logstash" 144 | } 145 | ] 146 | } 147 | -------------------------------------------------------------------------------- /syntaxes/m3u.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "M3U", 4 | "scopeName": "text.m3u", 5 | "fileTypes": ["m3u", "m3u8"], 6 | "patterns": [ 7 | { 8 | "match": "^[ \t].*", 9 | "name": "invalid.illegal.m3u" 10 | }, 11 | { 12 | "match": "^#EXTM3U$", 13 | "name": "support.class.m3u" 14 | }, 15 | { 16 | "begin": "^#EXTINF:", 17 | "beginCaptures": { 18 | "0": { 19 | "name": "support.constant.m3u" 20 | } 21 | }, 22 | "end": "(,)(.*)|$", 23 | "endCaptures": { 24 | "1": { 25 | "name": "keyword.control.m3u" 26 | }, 27 | "2": { 28 | "name": "support.variable.m3u" 29 | } 30 | }, 31 | "name": "meta.function.extinf.m3u", 32 | "patterns": [ 33 | { 34 | "match": "[0-9]+", 35 | "name": "constant.numeric.m3u" 36 | } 37 | ] 38 | }, 39 | { 40 | "begin": "^#EXT[A-Za-z0-9]+(\\:|\\-\\-)", 41 | "beginCaptures": { 42 | "0": { 43 | "name": "support.constant.m3u" 44 | } 45 | }, 46 | "end": "(=)(.*)|$", 47 | "endCaptures": { 48 | "1": { 49 | "name": "keyword.control.m3u" 50 | }, 51 | "2": { 52 | "name": "support.variable.m3u" 53 | } 54 | }, 55 | "name": "meta.function.ext.m3u" 56 | }, 57 | { 58 | "begin": "^#EXT\\-X\\-[A-Za-z0-9]+(\\:|\\-\\-)", 59 | "beginCaptures": { 60 | "0": { 61 | "name": "support.constant.m3u" 62 | } 63 | }, 64 | "end": "(=)(.*)|$", 65 | "endCaptures": { 66 | "1": { 67 | "name": "keyword.control.m3u" 68 | }, 69 | "2": { 70 | "name": "support.variable.m3u" 71 | } 72 | }, 73 | "name": "meta.function.ext.m3u" 74 | }, 75 | { 76 | "match": "^[^#].+", 77 | "name": "string.unquoted.m3u" 78 | }, 79 | { 80 | "match": "^#.*", 81 | "name": "comment.line.number-sign.m3u" 82 | } 83 | ] 84 | } 85 | -------------------------------------------------------------------------------- /syntaxes/mapfile.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "scopeName": "source.mapfile", 4 | "patterns": [ 5 | { "include": "#title" }, 6 | { "include": "#memory-config" }, 7 | { "include": "#common-symbols" }, 8 | { "include": "#object" }, 9 | { "include": "#flag" }, 10 | { "include": "#number" }, 11 | { "include": "#string" }, 12 | { "include": "#keyword" }, 13 | { "include": "#section" }, 14 | { "include": "#path" }, 15 | { "include": "#operator" } 16 | ], 17 | "repository": { 18 | "title": { 19 | "match": "^(Discarded input sections|Archive member included to satisfy reference by file \\(symbol\\)|Memory Configuration|Linker script and memory map|Allocating common symbols|Cross Reference Table)$", 20 | "name": "markup.heading" 21 | }, 22 | "common-symbols": { 23 | "match": "^Common\\s+symbol\\s+size\\s+file$", 24 | "name": "markup.underline" 25 | }, 26 | "memory-config": { 27 | "begin": "^Name\\s+Origin\\s+Length\\s+Attributes$", 28 | "end": "^$", 29 | "beginCaptures": { 30 | "0": { "name": "markup.underline" } 31 | }, 32 | "patterns": [ 33 | { 34 | "match": "^(\\*default\\*)\\s+(0x[0-9a-fA-F]+|\\d+)\\s+(0x[0-9a-fA-F]+|\\d+)(?:\\s+([rwxali!RWXALI]+))?$", 35 | "captures": { 36 | "1": { "name": "constant.language" }, 37 | "2": { "name": "constant.numeric" }, 38 | "3": { "name": "constant.numeric" }, 39 | "4": { "name": "keyword.control" } 40 | } 41 | }, 42 | { 43 | "match": "^(\\S+)\\s+(0x[0-9a-fA-F]+|\\d+)\\s+(0x[0-9a-fA-F]+|\\d+)(?:\\s+([rwxali!RWXALI]+))?$", 44 | "captures": { 45 | "1": { "name": "support.variable" }, 46 | "2": { "name": "constant.numeric" }, 47 | "3": { "name": "constant.numeric" }, 48 | "4": { "name": "keyword.control" } 49 | } 50 | } 51 | ] 52 | }, 53 | "object": { 54 | "match": "\\([-\\w.]+\\.(obj|o|a)\\)" 55 | }, 56 | "flag": { 57 | "match": "\\(--.*?\\)", 58 | "captures": { 59 | "0": { "name": "constant.language" } 60 | } 61 | }, 62 | "number": { 63 | "match": "\\b(0x[0-9a-fA-F]+|\\d+)\\b", 64 | "name": "constant.numeric" 65 | }, 66 | "string": { 67 | "match": "\".*?\"", 68 | "name": "string.quoted.double" 69 | }, 70 | "keyword": { 71 | "match": "(\\(size before relaxing\\)|\\*fill\\*|LOAD linker stubs|\\/DISCARD\\/|COMMON|CONSTRUCTORS|load address|linker stubs|LOADADDR|ALIGN|START GROUP|END GROUP|EXCLUDE_FILE|SECTIONS|PROVIDE|SIZEOF|SORT_BY_(NAME|ALIGNMENT|INIT_PRIORITY)|SORT_NONE|SORT|\\[!provide\\]|LOAD|OUTPUT)", 72 | "name": "constant.language" 73 | }, 74 | "section": { 75 | "match": "(\\.[\\w-]+)+(\\.\\*)?", 76 | "name": "support.variable" 77 | }, 78 | "operator": { 79 | "match": "[<>+*=/^-]", 80 | "name": "keyword.operator" 81 | }, 82 | "path": { 83 | "match": "([a-zA-Z]:[\\\\/]|/)?([~%$&+.\\w-]+[\\\\/])*[~%$&+.\\w-]+(\\.\\w+)+", 84 | "name": "entity.name.type" 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /syntaxes/ninja.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Ninja", 4 | "scopeName": "source.ninja", 5 | "uuid": "e837e9ed-6ad9-4103-b705-50503a86fc83", 6 | "fileTypes": ["ninja"], 7 | "patterns": [ 8 | { 9 | "captures": { 10 | "1": { 11 | "name": "punctuation.definition.comment.ninja" 12 | } 13 | }, 14 | "comment": "Comment line.", 15 | "match": "(#).*$\\n?", 16 | "name": "comment.line.number-sign.ninja" 17 | }, 18 | { 19 | "begin": "^(rule)\\b", 20 | "beginCaptures": { 21 | "1": { 22 | "name": "keyword.other.ninja" 23 | } 24 | }, 25 | "comment": "Rule keyword and keywords for a rule.", 26 | "end": "^(?=\\S)", 27 | "patterns": [ 28 | { 29 | "include": "$self" 30 | }, 31 | { 32 | "match": "\\b(?:command|deps|depfile|description|generator|pool|restat|rspfile|rspfile_content)\\b", 33 | "name": "keyword.other.ninja" 34 | } 35 | ] 36 | }, 37 | { 38 | "begin": "^(pool)\\b", 39 | "beginCaptures": { 40 | "1": { 41 | "name": "keyword.other.ninja" 42 | } 43 | }, 44 | "comment": "Pool keyword and keywords for a pool.", 45 | "end": "^(?=\\S)", 46 | "patterns": [ 47 | { 48 | "include": "$self" 49 | }, 50 | { 51 | "match": "\\b(?:depth)\\b", 52 | "name": "keyword.other.ninja" 53 | } 54 | ] 55 | }, 56 | { 57 | "comment": "Other Keywords.", 58 | "match": "^(?:build|rule|default|include|subninja)\\b", 59 | "name": "keyword.other.ninja" 60 | }, 61 | { 62 | "comment": "Operators for variable assignment (=), rule definition (:), implicit (|) and order only (||) dependencies.", 63 | "match": "(?:[=:]|\\|{1,2})(?=\\s)", 64 | "name": "keyword.operator.ninja" 65 | }, 66 | { 67 | "comment": "Line wrap.", 68 | "match": "\\$$", 69 | "name": "keyword.operator.ninja" 70 | }, 71 | { 72 | "comment": "Dollar literal.", 73 | "match": "\\$\\$", 74 | "name": "keyword.operator.ninja" 75 | }, 76 | { 77 | "comment": "Simple variables, e.g. $var.", 78 | "match": "\\$[[:alnum:]_-]+", 79 | "name": "variable.other.ninja" 80 | }, 81 | { 82 | "comment": "Variables, e.g. ${some.var.name}.", 83 | "match": "\\${[[:alnum:]_.-]+}", 84 | "name": "variable.other.ninja" 85 | } 86 | ] 87 | } 88 | -------------------------------------------------------------------------------- /syntaxes/pbxproj.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Project.pbxproj", 4 | "scopeName": "source.pbxproj", 5 | "patterns": [ 6 | { "include": "#keywords" }, 7 | { "include": "#numbers" }, 8 | { "include": "#properties" }, 9 | { "include": "#strings" }, 10 | { "include": "#comment" }, 11 | { "include": "#comments" } 12 | ], 13 | "repository": { 14 | "keywords": { 15 | "patterns": [ 16 | { 17 | "name": "keyword.control.project.pbxproj", 18 | "match": "([A-Z|0-9]{32})|([A-Z|0-9]{24})|([A-Z|0-9]{10})(\\s|;)" 19 | } 20 | ] 21 | }, 22 | "properties": { 23 | "patterns": [ 24 | { 25 | "name": "variable.name", 26 | "match": "([a-zA-Z0-9_][a-zA-Z0-9_]*)((.[a-zA-Z0-9_][a-zA-Z0-9_]*)+)?" 27 | } 28 | ] 29 | }, 30 | "numbers": { 31 | "patterns": [ 32 | { 33 | "name": "constant.numeric", 34 | "match": "-?([0-9]+)((.[0-9]+)+)?(\\s|;)" 35 | } 36 | ] 37 | }, 38 | "strings": { 39 | "name": "string.quoted.double.project.pbxproj", 40 | "begin": "\"", 41 | "end": "\"", 42 | "patterns": [ 43 | { 44 | "name": "constant.character.escape.project.pbxproj", 45 | "match": "\\\\." 46 | } 47 | ] 48 | }, 49 | "comment": { 50 | "match": "\"(comment)\"\\s*?:\\s*?\"(.+?)\"", 51 | "captures": { 52 | "1": { "name": "keyword.other.control.project.pbxproj" }, 53 | "2": { "name": "comment.project.pbxproj" } 54 | } 55 | }, 56 | "comments": { 57 | "patterns": [ 58 | { 59 | "match": "(//).*", 60 | "name": "comment.line.double-slash.project.pbxproj" 61 | }, 62 | { 63 | "begin": "/\\*", 64 | "end": "\\*/", 65 | "name": "comment.block.project.pbxproj" 66 | } 67 | ] 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /syntaxes/po.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Gettext", 4 | "scopeName": "source.po", 5 | "uuid": "F07730BD-59BC-41D0-AC3F-4AB2DCB6C54A", 6 | "keyEquivalent": "^~G", 7 | "fileTypes": ["po", "pot", "potx"], 8 | "patterns": [ 9 | { 10 | "begin": "^(?=(msgid(_plural)?|msgctxt)\\s*\"[^\"])|^\\s*$", 11 | "comment": "Start of body of document, after header", 12 | "end": "\\z", 13 | "patterns": [ 14 | { 15 | "include": "#body" 16 | } 17 | ] 18 | }, 19 | { 20 | "include": "#comments" 21 | }, 22 | { 23 | "match": "^msg(id|str)\\s+\"\"\\s*$\\n?", 24 | "name": "comment.line.number-sign.po" 25 | }, 26 | { 27 | "captures": { 28 | "1": { 29 | "name": "constant.language.po" 30 | }, 31 | "2": { 32 | "name": "punctuation.separator.key-value.po" 33 | }, 34 | "3": { 35 | "name": "string.other.po" 36 | } 37 | }, 38 | "match": "^\"(?:([^\\s:]+)(:)\\s+)?([^\"]*)\"\\s*$\\n?", 39 | "name": "meta.header.po" 40 | } 41 | ], 42 | "repository": { 43 | "body": { 44 | "patterns": [ 45 | { 46 | "begin": "^(msgid(_plural)?)\\s+", 47 | "beginCaptures": { 48 | "1": { 49 | "name": "keyword.control.msgid.po" 50 | } 51 | }, 52 | "end": "^(?!\")", 53 | "name": "meta.scope.msgid.po", 54 | "patterns": [ 55 | { 56 | "begin": "(\\G|^)\"", 57 | "end": "\"", 58 | "name": "string.quoted.double.po", 59 | "patterns": [ 60 | { 61 | "match": "\\\\[\\\\\"]", 62 | "name": "constant.character.escape.po" 63 | } 64 | ] 65 | } 66 | ] 67 | }, 68 | { 69 | "begin": "^(msgstr)(?:(\\[)(\\d+)(\\]))?\\s+", 70 | "beginCaptures": { 71 | "1": { 72 | "name": "keyword.control.msgstr.po" 73 | }, 74 | "2": { 75 | "name": "keyword.control.msgstr.po" 76 | }, 77 | "3": { 78 | "name": "constant.numeric.po" 79 | }, 80 | "4": { 81 | "name": "keyword.control.msgstr.po" 82 | } 83 | }, 84 | "end": "^(?!\")", 85 | "name": "meta.scope.msgstr.po", 86 | "patterns": [ 87 | { 88 | "begin": "(\\G|^)\"", 89 | "end": "\"", 90 | "name": "string.quoted.double.po", 91 | "patterns": [ 92 | { 93 | "match": "\\\\[\\\\\"]", 94 | "name": "constant.character.escape.po" 95 | } 96 | ] 97 | } 98 | ] 99 | }, 100 | { 101 | "begin": "^(msgctxt)(?:(\\[)(\\d+)(\\]))?\\s+", 102 | "beginCaptures": { 103 | "1": { 104 | "name": "keyword.control.msgctxt.po" 105 | }, 106 | "2": { 107 | "name": "keyword.control.msgctxt.po" 108 | }, 109 | "3": { 110 | "name": "constant.numeric.po" 111 | }, 112 | "4": { 113 | "name": "keyword.control.msgctxt.po" 114 | } 115 | }, 116 | "end": "^(?!\")", 117 | "name": "meta.scope.msgctxt.po", 118 | "patterns": [ 119 | { 120 | "begin": "(\\G|^)\"", 121 | "end": "\"", 122 | "name": "string.quoted.double.po", 123 | "patterns": [ 124 | { 125 | "match": "\\\\[\\\\\"]", 126 | "name": "constant.character.escape.po" 127 | } 128 | ] 129 | } 130 | ] 131 | }, 132 | { 133 | "captures": { 134 | "1": { 135 | "name": "punctuation.definition.comment.po" 136 | } 137 | }, 138 | "match": "^(#~).*$\\n?", 139 | "name": "comment.line.number-sign.obsolete.po" 140 | }, 141 | { 142 | "include": "#comments" 143 | }, 144 | { 145 | "comment": "a line that does not begin with # or \". Could improve this regexp", 146 | "match": "^(?!\\s*$)[^#\"].*$\\n?", 147 | "name": "invalid.illegal.po" 148 | } 149 | ] 150 | }, 151 | "comments": { 152 | "patterns": [ 153 | { 154 | "begin": "^(?=#)", 155 | "end": "(?!\\G)", 156 | "patterns": [ 157 | { 158 | "begin": "(#,)\\s+", 159 | "beginCaptures": { 160 | "1": { 161 | "name": "punctuation.definition.comment.po" 162 | } 163 | }, 164 | "end": "\\n", 165 | "name": "comment.line.number-sign.flag.po", 166 | "patterns": [ 167 | { 168 | "captures": { 169 | "1": { 170 | "name": "entity.name.type.flag.po" 171 | } 172 | }, 173 | "match": "(?:\\G|,\\s*)((?:fuzzy)|(?:no-)?(?:c|objc|sh|lisp|elisp|librep|scheme|smalltalk|java|csharp|awk|object-pascal|ycp|tcl|perl|perl-brace|php|gcc-internal|qt|boost)-format)" 174 | } 175 | ] 176 | }, 177 | { 178 | "begin": "#\\.", 179 | "beginCaptures": { 180 | "0": { 181 | "name": "punctuation.definition.comment.po" 182 | } 183 | }, 184 | "end": "\\n", 185 | "name": "comment.line.number-sign.extracted.po" 186 | }, 187 | { 188 | "begin": "(#:)[ \\t]*", 189 | "beginCaptures": { 190 | "1": { 191 | "name": "punctuation.definition.comment.po" 192 | } 193 | }, 194 | "end": "\\n", 195 | "name": "comment.line.number-sign.reference.po", 196 | "patterns": [ 197 | { 198 | "match": "(\\S+:)([\\d;]*)", 199 | "name": "storage.type.class.po" 200 | } 201 | ] 202 | }, 203 | { 204 | "begin": "#\\|", 205 | "beginCaptures": { 206 | "0": { 207 | "name": "punctuation.definition.comment.po" 208 | } 209 | }, 210 | "end": "\\n", 211 | "name": "comment.line.number-sign.previous.po" 212 | }, 213 | { 214 | "begin": "#", 215 | "beginCaptures": { 216 | "0": { 217 | "name": "punctuation.definition.comment.po" 218 | } 219 | }, 220 | "end": "\\n", 221 | "name": "comment.line.number-sign.po" 222 | } 223 | ] 224 | } 225 | ] 226 | } 227 | } 228 | } 229 | -------------------------------------------------------------------------------- /syntaxes/proto3.codeblock.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "scopeName": "markdown.codeblock.proto", 4 | "fileTypes": [], 5 | "injectionSelector": "L:text.html.markdown", 6 | "patterns": [ 7 | { 8 | "include": "#fenced_code_block_proto" 9 | } 10 | ], 11 | "repository": { 12 | "fenced_code_block_proto": { 13 | "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(protobuf|proto|proto3)((\\s+|:|\\{)[^`~]*)?$)", 14 | "name": "markup.fenced_code.block.markdown", 15 | "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", 16 | "beginCaptures": { 17 | "3": { 18 | "name": "punctuation.definition.markdown" 19 | }, 20 | "4": { 21 | "name": "fenced_code.block.language.markdown" 22 | }, 23 | "5": { 24 | "name": "fenced_code.block.language.attributes.markdown" 25 | } 26 | }, 27 | "endCaptures": { 28 | "3": { 29 | "name": "punctuation.definition.markdown" 30 | } 31 | }, 32 | "patterns": [ 33 | { 34 | "begin": "(^|\\G)(\\s*)(.*)", 35 | "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", 36 | "contentName": "meta.embedded.block.proto", 37 | "patterns": [ 38 | { 39 | "include": "source.proto" 40 | } 41 | ] 42 | } 43 | ] 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /syntaxes/psqlrc.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "psqlrc", 4 | "scopeName": "source.psqlrc", 5 | "patterns": [ 6 | { 7 | "include": "#comment" 8 | } 9 | ], 10 | "repository": { 11 | "comment": { 12 | "patterns": [ 13 | { 14 | "name": "comment.line.number-sign", 15 | "begin": "^\\s*--.*", 16 | "end": "\\n" 17 | } 18 | ] 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /syntaxes/robots-txt.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "robots.txt", 4 | "patterns": [ 5 | { 6 | "include": "#comment" 7 | }, 8 | { 9 | "include": "#rule-block" 10 | } 11 | ], 12 | "repository": { 13 | "comment": { 14 | "patterns": [ 15 | { 16 | "name": "comment.line.number-sign.robots-txt", 17 | "match": "#.*$" 18 | } 19 | ] 20 | }, 21 | "rule-block": { 22 | "patterns": [ 23 | { 24 | "match": "(?i)^([\\s*a-zA-Z0-9-/\\\\.]+\\s*)(:)?\\s*([^\\#]*)", 25 | "captures": { 26 | "1": { 27 | "name": "constant.language.robots-txt", 28 | "patterns": [ 29 | { 30 | "name": "invalid.illegal.directive.robots-txt", 31 | "match": "(?i)^(?!\\s*(allow|crawl-delay|disallow|host|sitemap|user-agent)\\s*$).*" 32 | } 33 | ] 34 | }, 35 | "2": { 36 | "name": "punctuation.colon.robots-txt" 37 | }, 38 | "3": { 39 | "name": "string.unquoted.value.robots-txt", 40 | "patterns": [ 41 | { 42 | "match": "-?\\d+(\\.\\d+)?", 43 | "name": "constant.numeric.robots-txt" 44 | }, 45 | { 46 | "match": "true|false", 47 | "name": "constant.language.robots-txt" 48 | } 49 | ] 50 | } 51 | } 52 | } 53 | ] 54 | } 55 | }, 56 | "scopeName": "text.robots-txt" 57 | } 58 | -------------------------------------------------------------------------------- /syntaxes/sxhkdrc.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "sxhkdrc", 4 | "scopeName": "source.sxhkdrc", 5 | "patterns": [ 6 | { "include": "#comment" }, 7 | { "include": "#hotkey" }, 8 | { "include": "#command" } 9 | ], 10 | "repository": { 11 | "comment": { 12 | "match": "^(#)(.*)(\\r\\n|\\r|\\n)", 13 | "captures": { 14 | "1": { "name": "comment.line.number-sign.sxhkdrc" }, 15 | "2": { "name": "comment.line.sxhkdrc" } 16 | } 17 | }, 18 | "hotkey": { 19 | "begin": "^(?=\\S)", 20 | "end": "$", 21 | "patterns": [ 22 | { "include": "#chord_separator" }, 23 | { "include": "#key_separator" }, 24 | { "include": "#hotkey_sequence" }, 25 | { "include": "#key" } 26 | ] 27 | }, 28 | "hotkey_sequence": { 29 | "begin": "\\{", 30 | "end": "\\}", 31 | "captures": { 32 | "0": { 33 | "name": "punctuation.definition.sxhkdrc" 34 | } 35 | }, 36 | "patterns": [ 37 | { "include": "#range" }, 38 | { "include": "#hotkey_sequence" }, 39 | { "include": "#chord_separator" }, 40 | { "include": "#key_separator" }, 41 | { "include": "#sequence_separator" }, 42 | { "include": "#key" } 43 | ] 44 | }, 45 | "chord_separator": { 46 | "match": "(;|:)", 47 | "name": "keyword.control" 48 | }, 49 | "key_separator": { 50 | "match": "\\+", 51 | "name": "keyword.operator" 52 | }, 53 | "sequence_separator": { 54 | "match": ",", 55 | "name": "punctuation.separator.element.sxhkdrc" 56 | }, 57 | "range": { 58 | "match": "(?<=\\{)(([a-z]-[a-z])|([A-Z]-[A-Z])|([0-9]-[0-9]))(?=\\})", 59 | "captures": { 60 | "2": { "patterns": [{ "include": "#range_contents" }] }, 61 | "3": { "patterns": [{ "include": "#range_contents" }] }, 62 | "4": { "patterns": [{ "include": "#range_contents" }] } 63 | } 64 | }, 65 | "range_contents": { 66 | "match": "(.)(-)(.)", 67 | "captures": { 68 | "1": { "name": "constant.language.sxhkdrc" }, 69 | "2": { "name": "punctuation.separator.element.sxhkdrc" }, 70 | "3": { "name": "constant.language.sxhkdrc" } 71 | } 72 | }, 73 | "key": { 74 | "match": "\\b(super|hyper|meta|alt|control|ctrl|shift|mode_switch|lock|mod1|mod2|mod3|mod4|mod5|any)\\b|(@|~)?(?:(button1|button2|button3|button4|button5|button6|button7|button8|button9|button10|button11|button12|button13|button14|button15|button16|button17|button18|button19|button20|button21|button22|button23|button24)|(\\w+))", 75 | "captures": { 76 | "1": { "name": "constant.language.sxhkdrc" }, 77 | "2": { "name": "storage.modifier.sxhkdrc" }, 78 | "3": { "name": "variable.language.sxhkdrc" }, 79 | "4": { "name": "variable.other.sxhkdrc" } 80 | } 81 | }, 82 | "command": { 83 | "begin": "^(?=[ \\t]+)", 84 | "end": "$", 85 | "patterns": [ 86 | { 87 | "match": "(\\S*)({[^}]+})(\\S*)|(\\S+)", 88 | "captures": { 89 | "1": { "name": "string.other.sxhkdrc" }, 90 | "2": { 91 | "patterns": [ 92 | { 93 | "include": "#command_sequence" 94 | } 95 | ] 96 | }, 97 | "3": { "name": "string.other.sxhkdrc" }, 98 | "4": { "name": "string.other.sxhkdrc" } 99 | } 100 | } 101 | ] 102 | }, 103 | "command_sequence": { 104 | "begin": "\\{", 105 | "end": "\\}", 106 | "captures": { 107 | "0": { "name": "punctuation.definition.sxhkdrc" } 108 | }, 109 | "patterns": [ 110 | { "include": "#range" }, 111 | { "include": "#sequence_separator" }, 112 | { "include": "#command_sequence_element" }, 113 | { "include": "#command_sequence" } 114 | ] 115 | }, 116 | "command_sequence_element": { 117 | "match": "(?<=[{,]).*?(?=[,}])", 118 | "name": "string.other.sxhkdrc" 119 | } 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /syntaxes/systemd-unit.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "systemd configuration file", 4 | "scopeName": "source.systemd", 5 | "uuid": "277f468c-7fcf-4987-9e55-51927eb0c911", 6 | "patterns": [ 7 | { 8 | "include": "#comments" 9 | }, 10 | { 11 | "begin": "^\\s*(CPUShares|StartupCPUShares|MemoryLimit|BlockIOAccounting|BlockIOWeight|StartupBlockIOWeight|BlockIODeviceWeight|BlockIOReadBandwidth|BlockIOWriteBandwidth|Capabilities)\\s*(=)[ \\t]*", 12 | "end": "(?)", 8 | "name": "constant.t4", 9 | "captures": { 10 | "1": { "name": "constant.t4" }, 11 | "2": { 12 | "patterns": [{ "include": "source.cs" }] 13 | }, 14 | "3": { "name": "constant.t4" } 15 | } 16 | }, 17 | { 18 | "begin": "(<#=|<#@|<#\\+|<#)", 19 | "beginCaptures": { 20 | "1": { 21 | "name": "constant.t4" 22 | } 23 | }, 24 | "end": "(.*?)(#>).*?", 25 | "endCaptures": { 26 | "1": { 27 | "patterns": [ 28 | { 29 | "include": "source.cs" 30 | } 31 | ] 32 | }, 33 | "2": { 34 | "name": "constant.t4" 35 | } 36 | }, 37 | "patterns": [ 38 | { 39 | "begin": "(^|\\G)(?!((<#@|<#=|<#\\+|<#).*?))", 40 | "while": "(^|\\G)(?!((.*?)#>))", 41 | "patterns": [ 42 | { 43 | "include": "source.cs" 44 | } 45 | ] 46 | } 47 | ] 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /syntaxes/tablegen.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "TableGen", 4 | "scopeName": "source.tablegen", 5 | "uuid": "3A090BFC-E74B-4993-8DAE-7CCF6D238A32", 6 | "fileTypes": ["td"], 7 | "foldingStartMarker": "/\\*\\*|\\{\\s*$", 8 | "foldingStopMarker": "\\*\\*/|^\\s*\\\n}", 9 | "patterns": [ 10 | { 11 | "include": "#comments" 12 | }, 13 | { 14 | "match": "\\b(def|let|in|code|dag|string|list|bits|bit|field|include|defm|foreach|class|multiclass|int|if|then|else|defset|defvar)\\b", 15 | "name": "keyword.control.tablegen" 16 | }, 17 | { 18 | "begin": "\"", 19 | "end": "\"", 20 | "name": "string.quoted.double.untitled", 21 | "patterns": [ 22 | { 23 | "match": "\\\\.", 24 | "name": "constant.character.escape.tablegen" 25 | } 26 | ] 27 | }, 28 | { 29 | "begin": "\\[\n\t{", 30 | "end": "\n\t}\n]", 31 | "name": "string.unquoted.tablegen" 32 | }, 33 | { 34 | "match": "\\b\\d+\\b", 35 | "name": "constant.numeric.dec.tablegen" 36 | }, 37 | { 38 | "match": "\\b0b[\n\t01\n]+\\b", 39 | "name": "constant.numeric.bin.tablegen" 40 | }, 41 | { 42 | "match": "\\b0x[\n\t0-9a-fA-F\n]+\\b", 43 | "name": "constant.numeric.hex.tablegen" 44 | } 45 | ], 46 | "repository": { 47 | "comments": { 48 | "patterns": [ 49 | { 50 | "captures": { 51 | "1": { 52 | "name": "meta.toc-list.banner.block.tablegen" 53 | } 54 | }, 55 | "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", 56 | "name": "comment.block.tablegen" 57 | }, 58 | { 59 | "begin": "/\\*", 60 | "captures": { 61 | "0": { 62 | "name": "punctuation.definition.comment.tablegen" 63 | } 64 | }, 65 | "end": "\\*/", 66 | "name": "comment.block.tablegen" 67 | }, 68 | { 69 | "match": "\\*/.*\\n", 70 | "name": "invalid.illegal.stray-comment-end.tablegen" 71 | }, 72 | { 73 | "captures": { 74 | "1": { 75 | "name": "meta.toc-list.banner.line.tablegen" 76 | } 77 | }, 78 | "match": "^ // =(\\s*.*?)\\s*=\\s*$\\n?", 79 | "name": "comment.line.banner.tablegen" 80 | }, 81 | { 82 | "begin": " //", 83 | "beginCaptures": { 84 | "0": { 85 | "name": "punctuation.definition.comment.tablegen" 86 | } 87 | }, 88 | "end": "$\\n?", 89 | "name": "comment.line.double-slash.tablegen", 90 | "patterns": [ 91 | { 92 | "match": "(?>\\\\\\s*\\n)", 93 | "name": "punctuation.separator.continuation.tablegen" 94 | } 95 | ] 96 | } 97 | ] 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /syntaxes/terminfo.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "terminfo", 4 | "scopeName": "source.terminfo", 5 | "patterns": [ 6 | { 7 | "include": "#comments" 8 | } 9 | ], 10 | "repository": { 11 | "comments": { 12 | "patterns": [ 13 | { 14 | "name": "comment", 15 | "match": "^#.*$" 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /syntaxes/textproto-codeblock.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "scopeName": "markdown.textproto.codeblock", 4 | "fileTypes": [], 5 | "injectionSelector": "L:text.html.markdown", 6 | "patterns": [ 7 | { 8 | "include": "#textproto-code-block" 9 | } 10 | ], 11 | "repository": { 12 | "textproto-code-block": { 13 | "begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(pbtxt|prototxt|textproto)(\\s+[^`~]*)?$)", 14 | "name": "markup.fenced_code.block.markdown", 15 | "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", 16 | "beginCaptures": { 17 | "3": { 18 | "name": "punctuation.definition.markdown" 19 | }, 20 | "5": { 21 | "name": "fenced_code.block.language" 22 | }, 23 | "6": { 24 | "name": "fenced_code.block.language.attributes" 25 | } 26 | }, 27 | "endCaptures": { 28 | "3": { 29 | "name": "punctuation.definition.markdown" 30 | } 31 | }, 32 | "patterns": [ 33 | { 34 | "begin": "(^|\\G)(\\s*)(.*)", 35 | "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", 36 | "contentName": "meta.embedded.block.textproto", 37 | "patterns": [ 38 | { 39 | "include": "source.textproto" 40 | } 41 | ] 42 | } 43 | ] 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /syntaxes/tsconfig.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "TsConfig", 4 | "scopeName": "source.tsconfig", 5 | "patterns": [ 6 | { 7 | "include": "#comments" 8 | }, 9 | { 10 | "include": "#includes" 11 | }, 12 | { 13 | "include": "#conditions" 14 | }, 15 | { 16 | "comment": "Everything after the equal sign", 17 | "begin": "(=)(\\s?)", 18 | "captures": { 19 | "0": { 20 | "name": "keyword.operator" 21 | } 22 | }, 23 | "end": "(?:\n|$)", 24 | "name": "string.interpolated.tsconfig", 25 | "patterns": [ 26 | { 27 | "include": "#cobjects" 28 | }, 29 | { 30 | "include": "#constants" 31 | }, 32 | { 33 | "include": "#interpolation" 34 | }, 35 | { 36 | "include": "#strings" 37 | } 38 | ] 39 | } 40 | ], 41 | "repository": { 42 | "comments": { 43 | "patterns": [ 44 | { 45 | "begin": "/\\*", 46 | "captures": { 47 | "0": { 48 | "name": "punctuation.definition.comment.tsconfig" 49 | } 50 | }, 51 | "end": "\\*/", 52 | "name": "comment.block.tsconfig" 53 | }, 54 | { 55 | "begin": "(^\\s+)?(?=//)", 56 | "beginCaptures": { 57 | "1": { 58 | "name": "punctuation.whitespace.comment.leading.tsconfig" 59 | } 60 | }, 61 | "end": "(?!\\G)", 62 | "patterns": [ 63 | { 64 | "begin": "//", 65 | "beginCaptures": { 66 | "0": { 67 | "name": "punctuation.definition.comment.tsconfig" 68 | } 69 | }, 70 | "end": "\\n|(?=\\?>)", 71 | "name": "comment.line.double-slash.tsconfig" 72 | } 73 | ] 74 | }, 75 | { 76 | "begin": "(^\\s+)?(?=#)", 77 | "beginCaptures": { 78 | "1": { 79 | "name": "punctuation.whitespace.comment.leading.tsconfig" 80 | } 81 | }, 82 | "end": "(?!\\G)", 83 | "patterns": [ 84 | { 85 | "begin": "#", 86 | "beginCaptures": { 87 | "0": { 88 | "name": "punctuation.definition.comment.tsconfig" 89 | } 90 | }, 91 | "end": "\\n|(?=\\?>)", 92 | "name": "comment.line.number-sign.tsconfig" 93 | } 94 | ] 95 | } 96 | ] 97 | }, 98 | "constants": { 99 | "patterns": [ 100 | { 101 | "name": "variable.other.tsconfig", 102 | "match": "{\\$.*}" 103 | } 104 | ] 105 | }, 106 | "conditions": { 107 | "patterns": [ 108 | { 109 | "name": "variable.other.tsconfig", 110 | "match": "\\[(adminUser|language|IP|hostname|applicationContext|hour|minute|month|year|dayofweek|dayofmonth|dayofyear|usergroup|loginUser|page|treeLevel|PIDinRootline|PIDupinRootline|compatVersion|globalVar|globalString|global|userFunc|end|((?:\\{1,2}\\w+|\\w+\\\\{1,2})(?:\\w+\\\\{0,2})+)).*\\]" 111 | } 112 | ] 113 | }, 114 | "cobjects": { 115 | "patterns": [ 116 | { 117 | "name": "support.class.cobject.tsconfig", 118 | "match": "(CASE|COA|COA_INT|CONTENT|EDITPANEL|FILE|FILES|FLUIDTEMPLATE|HMENU|TMENU|IMAGE|IMG_RESOURCE|LOAD_REGISTER|RECORDS|RESTORE_REGISTER|SVG|TEMPLATE|TEXT|USER|USER_INT|PAGE)\\b(?:\n|$)" 119 | } 120 | ] 121 | }, 122 | "interpolation": { 123 | "patterns": [ 124 | { 125 | "match": "\\\\[0-7]{1,3}", 126 | "name": "constant.numeric.octal.tsconfig" 127 | }, 128 | { 129 | "match": "\\\\x[0-9A-Fa-f]{1,2}", 130 | "name": "constant.numeric.hex.tsconfig" 131 | }, 132 | { 133 | "match": "\\\\[enrt\\\\\\$\\\"]", 134 | "name": "constant.character.escape.tsconfig" 135 | } 136 | ] 137 | }, 138 | "string-double-quoted": { 139 | "begin": "\"", 140 | "beginCaptures": { 141 | "0": { 142 | "name": "punctuation.definition.string.begin.tsconfig" 143 | } 144 | }, 145 | "end": "\"", 146 | "endCaptures": { 147 | "0": { 148 | "name": "punctuation.definition.string.end.tsconfig" 149 | } 150 | }, 151 | "name": "string.quoted.double.tsconfig", 152 | "patterns": [ 153 | { 154 | "include": "#interpolation" 155 | } 156 | ] 157 | }, 158 | "string-single-quoted": { 159 | "begin": "'", 160 | "beginCaptures": { 161 | "0": { 162 | "name": "punctuation.definition.string.begin.tsconfig" 163 | } 164 | }, 165 | "end": "'", 166 | "endCaptures": { 167 | "0": { 168 | "name": "punctuation.definition.string.end.tsconfig" 169 | } 170 | }, 171 | "name": "string.quoted.single.tsconfig", 172 | "patterns": [ 173 | { 174 | "match": "\\\\[\\\\']", 175 | "name": "constant.character.escape.tsconfig" 176 | } 177 | ] 178 | }, 179 | "strings": { 180 | "patterns": [ 181 | { 182 | "include": "#string-double-quoted" 183 | }, 184 | { 185 | "include": "#string-single-quoted" 186 | } 187 | ] 188 | }, 189 | "include_at_rule": { 190 | "begin": "\\s*((@)import\\b)\\s*", 191 | "captures": { 192 | "1": { 193 | "name": "keyword.control.include.tsconfig" 194 | }, 195 | "2": { 196 | "name": "punctuation.definition.keyword.tsconfig" 197 | } 198 | }, 199 | "end": "\\s", 200 | "name": "meta.include.tsconfig", 201 | "patterns": [ 202 | { 203 | "include": "#strings" 204 | } 205 | ] 206 | }, 207 | "include_tag_rule": { 208 | "begin": "", 215 | "endCaptures": { 216 | "0": { 217 | "name": "support.function.tsconfig" 218 | } 219 | }, 220 | "patterns": [ 221 | { 222 | "name": "variable.parameter.tsconfig", 223 | "match": "(source|extensions|condition)(=)" 224 | }, 225 | { 226 | "include": "#strings" 227 | } 228 | ] 229 | }, 230 | "includes": { 231 | "patterns": [ 232 | { 233 | "include": "#include_at_rule" 234 | }, 235 | { 236 | "include": "#include_tag_rule" 237 | } 238 | ] 239 | } 240 | } 241 | } 242 | -------------------------------------------------------------------------------- /syntaxes/typoscript.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "TypoScript", 4 | "scopeName": "source.typoscript", 5 | "patterns": [ 6 | { 7 | "include": "#comments" 8 | }, 9 | { 10 | "include": "#includes" 11 | }, 12 | { 13 | "include": "#conditions" 14 | }, 15 | { 16 | "comment": "Everything after the equal sign", 17 | "begin": "(=)(\\s?)", 18 | "captures": { 19 | "0": { 20 | "name": "keyword.operator" 21 | } 22 | }, 23 | "end": "(?:\n|$)", 24 | "name": "string.interpolated.typoscript", 25 | "patterns": [ 26 | { 27 | "include": "#cobjects" 28 | }, 29 | { 30 | "include": "#constants" 31 | }, 32 | { 33 | "include": "#interpolation" 34 | }, 35 | { 36 | "include": "#strings" 37 | } 38 | ] 39 | } 40 | ], 41 | "repository": { 42 | "comments": { 43 | "patterns": [ 44 | { 45 | "begin": "/\\*", 46 | "captures": { 47 | "0": { 48 | "name": "punctuation.definition.comment.typoscript" 49 | } 50 | }, 51 | "end": "\\*/", 52 | "name": "comment.block.typoscript" 53 | }, 54 | { 55 | "begin": "(^\\s+)?(?=//)", 56 | "beginCaptures": { 57 | "1": { 58 | "name": "punctuation.whitespace.comment.leading.typoscript" 59 | } 60 | }, 61 | "end": "(?!\\G)", 62 | "patterns": [ 63 | { 64 | "begin": "//", 65 | "beginCaptures": { 66 | "0": { 67 | "name": "punctuation.definition.comment.typoscript" 68 | } 69 | }, 70 | "end": "\\n|(?=\\?>)", 71 | "name": "comment.line.double-slash.typoscript" 72 | } 73 | ] 74 | }, 75 | { 76 | "begin": "(^\\s+)?(?=#)", 77 | "beginCaptures": { 78 | "1": { 79 | "name": "punctuation.whitespace.comment.leading.typoscript" 80 | } 81 | }, 82 | "end": "(?!\\G)", 83 | "patterns": [ 84 | { 85 | "begin": "#", 86 | "beginCaptures": { 87 | "0": { 88 | "name": "punctuation.definition.comment.typoscript" 89 | } 90 | }, 91 | "end": "\\n|(?=\\?>)", 92 | "name": "comment.line.number-sign.typoscript" 93 | } 94 | ] 95 | } 96 | ] 97 | }, 98 | "constants": { 99 | "patterns": [ 100 | { 101 | "name": "variable.other.typoscript", 102 | "match": "{\\$.*}" 103 | } 104 | ] 105 | }, 106 | "conditions": { 107 | "patterns": [ 108 | { 109 | "name": "variable.other.typoscript", 110 | "match": "\\[(adminUser|language|IP|hostname|applicationContext|hour|minute|month|year|dayofweek|dayofmonth|dayofyear|usergroup|loginUser|page|treeLevel|PIDinRootline|PIDupinRootline|compatVersion|globalVar|globalString|global|userFunc|end|((?:\\{1,2}\\w+|\\w+\\\\{1,2})(?:\\w+\\\\{0,2})+)).*\\]" 111 | } 112 | ] 113 | }, 114 | "cobjects": { 115 | "patterns": [ 116 | { 117 | "name": "support.class.cobject.typoscript", 118 | "match": "(CASE|COA|COA_INT|CONTENT|EDITPANEL|FILE|FILES|FLUIDTEMPLATE|HMENU|TMENU|IMAGE|IMG_RESOURCE|LOAD_REGISTER|RECORDS|RESTORE_REGISTER|SVG|TEMPLATE|TEXT|USER|USER_INT|PAGE)\\b(?:\n|$)" 119 | } 120 | ] 121 | }, 122 | "interpolation": { 123 | "patterns": [ 124 | { 125 | "match": "\\\\[0-7]{1,3}", 126 | "name": "constant.numeric.octal.typoscript" 127 | }, 128 | { 129 | "match": "\\\\x[0-9A-Fa-f]{1,2}", 130 | "name": "constant.numeric.hex.typoscript" 131 | }, 132 | { 133 | "match": "\\\\[enrt\\\\\\$\\\"]", 134 | "name": "constant.character.escape.typoscript" 135 | } 136 | ] 137 | }, 138 | "string-double-quoted": { 139 | "begin": "\"", 140 | "beginCaptures": { 141 | "0": { 142 | "name": "punctuation.definition.string.begin.typoscript" 143 | } 144 | }, 145 | "end": "\"", 146 | "endCaptures": { 147 | "0": { 148 | "name": "punctuation.definition.string.end.typoscript" 149 | } 150 | }, 151 | "name": "string.quoted.double.typoscript", 152 | "patterns": [ 153 | { 154 | "include": "#interpolation" 155 | } 156 | ] 157 | }, 158 | "string-single-quoted": { 159 | "begin": "'", 160 | "beginCaptures": { 161 | "0": { 162 | "name": "punctuation.definition.string.begin.typoscript" 163 | } 164 | }, 165 | "end": "'", 166 | "endCaptures": { 167 | "0": { 168 | "name": "punctuation.definition.string.end.typoscript" 169 | } 170 | }, 171 | "name": "string.quoted.single.typoscript", 172 | "patterns": [ 173 | { 174 | "match": "\\\\[\\\\']", 175 | "name": "constant.character.escape.typoscript" 176 | } 177 | ] 178 | }, 179 | "strings": { 180 | "patterns": [ 181 | { 182 | "include": "#string-double-quoted" 183 | }, 184 | { 185 | "include": "#string-single-quoted" 186 | } 187 | ] 188 | }, 189 | "include_at_rule": { 190 | "begin": "\\s*((@)import\\b)\\s*", 191 | "captures": { 192 | "1": { 193 | "name": "keyword.control.include.typoscript" 194 | }, 195 | "2": { 196 | "name": "punctuation.definition.keyword.typoscript" 197 | } 198 | }, 199 | "end": "\\s", 200 | "name": "meta.include.typoscript", 201 | "patterns": [ 202 | { 203 | "include": "#strings" 204 | } 205 | ] 206 | }, 207 | "include_tag_rule": { 208 | "begin": "", 215 | "endCaptures": { 216 | "0": { 217 | "name": "support.function.typoscript" 218 | } 219 | }, 220 | "patterns": [ 221 | { 222 | "name": "variable.parameter.typoscript", 223 | "match": "(source|extensions|condition)(=)" 224 | }, 225 | { 226 | "include": "#strings" 227 | } 228 | ] 229 | }, 230 | "includes": { 231 | "patterns": [ 232 | { 233 | "include": "#include_at_rule" 234 | }, 235 | { 236 | "include": "#include_tag_rule" 237 | } 238 | ] 239 | } 240 | } 241 | } 242 | -------------------------------------------------------------------------------- /syntaxes/vcard.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "vCard", 4 | "scopeName": "source.vcard", 5 | "patterns": [ 6 | { 7 | "name": "support.function.vcard", 8 | "begin": "^BEGIN:VCARD$", 9 | "end": "^END:VCARD$", 10 | "patterns": [ 11 | { "include": "#versionNum" }, 12 | { "include": "#properties" }, 13 | { "include": "#extensionProperties" }, 14 | { "include": "#attributeTypes" }, 15 | { "include": "#attributeValues" }, 16 | { "include": "#values" }, 17 | { "include": "#valuesMultiline" } 18 | ] 19 | } 20 | ], 21 | "repository": { 22 | "versionNum": { 23 | "patterns": [ 24 | { 25 | "name": "variable.language.version.vcard", 26 | "match": "(?<=^VERSION:).+$" 27 | } 28 | ] 29 | }, 30 | "properties": { 31 | "patterns": [ 32 | { 33 | "name": "keyword.control.property.vcard", 34 | "match": "^\\b(VERSION|ADR|AGENT|ANNIVERSARY|BDAY|CALADRURI|CALURI|CATEGORIES|CLASS|CLIENTPIDMAP|EMAIL|FBURL|FN|GENDER|GEO|IMPP|KEY|KIND|LABEL|LANG|LOGO|MAILER|MEMBER|N|NAME|NICKNAME|NOTE|ORG|PHOTO|PRODID|PROFILE|RELATED|REV|ROLE|SORT-STRING|SOUND|SOURCE|TEL|TITLE|TZ|UID|URL|XML)\\b" 35 | } 36 | ] 37 | }, 38 | "extensionProperties": { 39 | "patterns": [ 40 | { 41 | "name": "keyword.other.expansion.property.vcard", 42 | "match": "^\\S.*?(?=:)" 43 | } 44 | ] 45 | }, 46 | "attributeTypes": { 47 | "patterns": [ 48 | { 49 | "name": "entity.name.type.attribute.vcard", 50 | "match": "(?<=;)\\b\\w+?\\b(?=[:;=])" 51 | } 52 | ] 53 | }, 54 | "attributeValues": { 55 | "patterns": [ 56 | { 57 | "name": "variable.attribute.vcard", 58 | "match": "(?<=\\=).+?(?=[:;])" 59 | } 60 | ] 61 | }, 62 | "values": { 63 | "patterns": [ 64 | { 65 | "name": "string.unquoted.value.vcard", 66 | "match": "(?<=:).+" 67 | } 68 | ] 69 | }, 70 | "valuesMultiline": { 71 | "patterns": [ 72 | { 73 | "name": "string.unquoted.value.vcard", 74 | "match": "^ \\S.*" 75 | } 76 | ] 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /syntaxes/xdefaults.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Xdefaults", 4 | "scopeName": "source.xdefaults", 5 | "patterns": [ 6 | { 7 | "include": "#comments" 8 | }, 9 | { 10 | "include": "#commands" 11 | } 12 | ], 13 | "repository": { 14 | "comments": { 15 | "patterns": [ 16 | { 17 | "name": "comment", 18 | "match": "^!.*$" 19 | } 20 | ] 21 | }, 22 | "commands": { 23 | "patterns": [ 24 | { 25 | "name": "string", 26 | "match": "^(.*?)(:)(.*)$", 27 | "captures": { 28 | "1": { "patterns": [{ "include": "#resource" }] }, 29 | "2": { "name": "keyword.operator" }, 30 | "3": { "patterns": [{ "include": "#value" }] } 31 | } 32 | } 33 | ] 34 | }, 35 | "resource": { 36 | "patterns": [ 37 | { 38 | "name": "keyword.operator", 39 | "match": "\\?" 40 | }, 41 | { 42 | "name": "keyword.operator", 43 | "match": "\\*" 44 | }, 45 | { 46 | "name": "keyword.operator", 47 | "match": "\\." 48 | }, 49 | { 50 | "name": "variable", 51 | "match": "[^?*.]+" 52 | } 53 | ] 54 | }, 55 | "value": { 56 | "patterns": [ 57 | { 58 | "name": "constant.numeric", 59 | "match": "(?<=:)\\s*\\d+\\s*$" 60 | }, 61 | { 62 | "name": "constant", 63 | "match": "(?<=:)\\s*(true|false)\\s*$" 64 | } 65 | ] 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /syntaxes/yarnlock.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "yarn.lock", 4 | "scopeName": "text.yarnlock", 5 | "patterns": [ 6 | { "include": "#comments" }, 7 | { "include": "#resolved-url" }, 8 | { "include": "#integrity-hashes" }, 9 | { "include": "#package-version" }, 10 | { "include": "#keywords" }, 11 | { "include": "#keywords-berry" } 12 | ], 13 | "repository": { 14 | "comments": { 15 | "patterns": [ 16 | { 17 | "begin": "^\\s*#", 18 | "captures": { 19 | "0": { 20 | "name": "punctuation.definition.comment" 21 | } 22 | }, 23 | "end": "$", 24 | "name": "comment.line" 25 | } 26 | ] 27 | }, 28 | "integrity-hashes": { 29 | "patterns": [ 30 | { 31 | "begin": "(integrity|checksum):?\\s+", 32 | "beginCaptures": { 33 | "1": { 34 | "name": "keyword" 35 | } 36 | }, 37 | "end": "\\n", 38 | "patterns": [ 39 | { 40 | "name": "constant.character", 41 | "match": "\\S+" 42 | } 43 | ] 44 | } 45 | ] 46 | }, 47 | "keywords": { 48 | "patterns": [ 49 | { 50 | "name": "keyword", 51 | "match": "\\b(dependencies|integrity|name|optionalDependencies|resolved|version)\\b[\\s|:]" 52 | } 53 | ] 54 | }, 55 | "keywords-berry": { 56 | "patterns": [ 57 | { 58 | "name": "keyword", 59 | "match": "\\b(version|cacheKey|resolution|dependencies|peerDependencies|peerDependenciesMeta|bin|checksum|languageName|linkType)\\b:" 60 | } 61 | ] 62 | }, 63 | "package-version": { 64 | "patterns": [ 65 | { 66 | "name": "entity.name.function", 67 | "match": "\"(?:\\*|[^\"a-zA-Z]*\\d[^\"a-zA-Z]*)\"" 68 | }, 69 | { 70 | "begin": "(version):?\\s+", 71 | "beginCaptures": { 72 | "1": { 73 | "name": "keyword" 74 | } 75 | }, 76 | "end": "\\n", 77 | "patterns": [ 78 | { 79 | "name": "entity.name.function", 80 | "match": "\"?[^\"\\n]+\"?" 81 | } 82 | ] 83 | } 84 | ] 85 | }, 86 | "resolved-url": { 87 | "name": "string.quoted.double", 88 | "begin": "\"(?=https?:)", 89 | "end": "\"", 90 | "patterns": [] 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /syntaxes/zone.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tmLanguage.json", 3 | "name": "Bind9 DNS Zone", 4 | "scopeName": "text.zone_file", 5 | "uuid": "e7258f23-3f2a-4b03-80e1-ac8990b47a6d", 6 | "fileTypes": ["zone", "db"], 7 | "patterns": [ 8 | { 9 | "match": ";.*", 10 | "name": "comment.line.semicolon.zone_file" 11 | }, 12 | { 13 | "match": "@", 14 | "name": "keyword.directive.zone_file" 15 | }, 16 | { 17 | "match": "\\$(ORIGIN|origin|TTL|ttl|INCLUDE|include)\\s*([^;]*)(;.*)?", 18 | "name": "keyword.directive.zone_file", 19 | "captures": { 20 | "2": { 21 | "name": "variable.other.directive.zone_file" 22 | }, 23 | "3": { 24 | "name": "comment.line.semicolon.zone_file" 25 | } 26 | } 27 | }, 28 | { 29 | "match": "\\d+(H|h|D|d|W|w|M|m|Y|y)", 30 | "name": "variable.other.timeunit.zone_file" 31 | }, 32 | { 33 | "begin": "([A-Za-z0-9_.-]*)\\s+(?:([0-9A-Za-z]*)\\s+)?([I|i][N|n]\\s+[A-Za-z0-9]+)\\s+(.*)\\(", 34 | "beginCaptures": { 35 | "2": { 36 | "name": "variable.other.timeunit.zone_file" 37 | }, 38 | "3": { 39 | "name": "keyword.resourcetype.zone_file" 40 | }, 41 | "4": { 42 | "name": "string.quoted.single.resource.address.zone_file" 43 | } 44 | }, 45 | "patterns": [ 46 | { 47 | "match": ";.*", 48 | "name": "comment.line.semicolon.zone_file" 49 | } 50 | ], 51 | "end": "\\)", 52 | "name": "string.quoted.single.address.zone_file" 53 | }, 54 | { 55 | "match": "([A-Za-z0-9_.-]*)\\s+(?:([0-9A-Za-z]*)\\s+)?([I|i][N|n]\\s+[A-Za-z0-9]+)\\s+(.*)", 56 | "name": "string.quoted.single.address.zone_file", 57 | "captures": { 58 | "2": { 59 | "name": "variable.other.timeunit.zone_file" 60 | }, 61 | "3": { 62 | "name": "keyword.resourcetype.zone_file" 63 | }, 64 | "4": { 65 | "name": "string.quoted.single.resource.address.zone_file" 66 | } 67 | } 68 | } 69 | ] 70 | } 71 | -------------------------------------------------------------------------------- /testdata/.Xresources: -------------------------------------------------------------------------------- 1 | ?.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1 2 | *headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1 3 | -------------------------------------------------------------------------------- /testdata/1.asl: -------------------------------------------------------------------------------- 1 | DefinitionBlock ("", "DSDT", 2, "", "", 0x0) 2 | { 3 | Scope (\_SB) 4 | { 5 | Device (PCI0) 6 | { 7 | Name (INT1, 0x1234) 8 | Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) 9 | Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) 10 | Method (^BN00, 0, NotSerialized) 11 | { 12 | Return (0x12 + INT1) 13 | } 14 | Method (_BBN, 0, NotSerialized) 15 | { 16 | Return (BN00 ()) 17 | } 18 | Name (_UID, 0x00) // _UID: Unique ID 19 | OperationRegion (MCHT, SystemMemory, 0xFED10000, 0x6000) 20 | Field (MCHT, ByteAcc, NoLock, Preserve) 21 | { 22 | Offset (0x5994), 23 | RPSL, 8, 24 | Offset (0x5998), 25 | RP0C, 8, 26 | RP1C, 8, 27 | RPNC, 8 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /testdata/1.asm: -------------------------------------------------------------------------------- 1 | .text 2 | .globl _start 3 | 4 | min = 0 /* starting value for the loop index; note that this is a symbol (constant), not a variable */ 5 | max = 31 /* loop exits when the index hits this number (loop condition is i 2 | <% users.forEach(function(user){ %> <%- include('user/show', {user: user}) %> 3 | <% }); %> 4 | 5 | -------------------------------------------------------------------------------- /testdata/1.env: -------------------------------------------------------------------------------- 1 | KEY=value 2 | 3 | # comment 4 | OTHER_KEY=${KEY}_something 5 | -------------------------------------------------------------------------------- /testdata/1.expect: -------------------------------------------------------------------------------- 1 | spawn "./a.out" 2 | 3 | expect "umber of Pizza" 4 | send "2\n" 5 | 6 | expect "Size of Pizza" 7 | send "S\n" 8 | expect "Flour Type" 9 | send "1\n" 10 | expect "Cheese Type" 11 | send "R\n" 12 | expect "Topping Type" 13 | send "2\n" 14 | 15 | interact 16 | -------------------------------------------------------------------------------- /testdata/1.fbs: -------------------------------------------------------------------------------- 1 | namespace hero; 2 | 3 | table Warrior { 4 | name: string; 5 | hp: uint32; 6 | } 7 | -------------------------------------------------------------------------------- /testdata/1.gitignore: -------------------------------------------------------------------------------- 1 | # blah 2 | # something 3 | -------------------------------------------------------------------------------- /testdata/1.gnuplot: -------------------------------------------------------------------------------- 1 | set size square 2 | set parametric 3 | set hidden3d 4 | set title "Blah" 5 | 6 | # simple plotting 7 | plot '2col.dat' # assumes col1=x, col2=y; shows '+' at data points 8 | plot '2col.dat' with lines # connect points with a line 9 | plot '2col.dat' with linespoints # line and points 10 | plot '2col.dat' with points # just points (default) 11 | 12 | # plot a subset of the data 13 | plot[1:5] '2col.dat' with linespoints # plot the first 5 elements 14 | plot[3:7] '2col.dat' with linespoints # plot only elements 3 thru 7 15 | 16 | # add a title to your line 17 | plot '2col.dat' with lines title 'my curve' # this is really the line-title in the legend 18 | 19 | # map the columns to the x- and y-axes 20 | plot '2col.dat' using 1:2 # 1=x, 2=y (this is the default) 21 | plot '2col.dat' using 2:1 # 2=x, 1=y (reverse the graph) 22 | 23 | # abbreviations 24 | plot '2col.csv' u 1:2 w l title 'Squared' # 'u' - using, 'w l' - with lines 25 | -------------------------------------------------------------------------------- /testdata/1.haml: -------------------------------------------------------------------------------- 1 | .messages-overflow-container{"data-simplebar": true} 2 | .messages{ 3 | data: { controller: "chat-messages" } 4 | } 5 | .like-notification{ 6 | data: { controller: "reaction-notification" } } 7 | - unless video.finished? 8 | .message-write{ 9 | data: { 10 | "controller": "chat", 11 | "show-when-logged-in": true 12 | } 13 | } 14 | .chat-controls 15 | .write-area{ 16 | placeholder: 'Send a message', 17 | contenteditable: true, 18 | role: "textbox", 19 | data: { 20 | action: "keydown->chat#chatBoxKeyDown", 21 | target: "chat.messageInput" 22 | } 23 | } 24 | = render "shared/reaction_button" 25 | .message-login-prompt{data: { "show-when-logged-out": true }} 26 | %button{ 27 | data: { 28 | action: "authentication#showModal" 29 | } 30 | } Login To Chat 31 | -------------------------------------------------------------------------------- /testdata/1.hbs: -------------------------------------------------------------------------------- 1 |

{{firstname}} {{lastname}}

2 | 3 | {{#each people}} 4 | {{print_person}} 5 | {{/each}} -------------------------------------------------------------------------------- /testdata/1.hla: -------------------------------------------------------------------------------- 1 | program HelloWorld; 2 | 3 | #include("stdlib.hhf") 4 | 5 | begin HelloWorld; 6 | stdout.put("Hello, World of Assembly Language", nl); 7 | end HelloWorld; 8 | -------------------------------------------------------------------------------- /testdata/1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /testdata/1.ics: -------------------------------------------------------------------------------- 1 | BEGIN:VCALENDAR 2 | METHOD:PUBLISH 3 | PRODID:Microsoft Exchange Server 2010 4 | VERSION:2.0 5 | BEGIN:VTIMEZONE 6 | TZID:Pacific Standard Time 7 | BEGIN:STANDARD 8 | DTSTART:16010101T020000 9 | TZOFFSETFROM:-0700 10 | TZOFFSETTO:-0800 11 | RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11 12 | END:STANDARD 13 | BEGIN:DAYLIGHT 14 | DTSTART:16010101T020000 15 | TZOFFSETFROM:-0800 16 | TZOFFSETTO:-0700 17 | RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3 18 | END:DAYLIGHT 19 | END:VTIMEZONE 20 | BEGIN:VEVENT 21 | DESCRIPTION:\n 22 | RRULE:FREQ=WEEKLY;UNTIL=20240408T213000Z;INTERVAL=1;BYDAY=MO;WKST=SU 23 | UID:040000008200E00074C5B7101A82E00800000000FDC479D0365EDA01000000000000000 24 | 0100000003E4906C46182A34E9DB02599C4045094 25 | SUMMARY:Fry Office Hours 26 | DTSTART;TZID=Pacific Standard Time:20240311T143000 27 | DTEND;TZID=Pacific Standard Time:20240311T153000 28 | CLASS:PUBLIC 29 | PRIORITY:5 30 | DTSTAMP:20240612T020257Z 31 | TRANSP:OPAQUE 32 | STATUS:CONFIRMED 33 | SEQUENCE:0 34 | LOCATION:Zoom 35 | X-MICROSOFT-CDO-APPT-SEQUENCE:0 36 | X-MICROSOFT-CDO-BUSYSTATUS:BUSY 37 | X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY 38 | X-MICROSOFT-CDO-ALLDAYEVENT:FALSE 39 | X-MICROSOFT-CDO-IMPORTANCE:1 40 | X-MICROSOFT-CDO-INSTTYPE:1 41 | X-MICROSOFT-DONOTFORWARDMEETING:FALSE 42 | X-MICROSOFT-DISALLOW-COUNTER:FALSE 43 | X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT 44 | X-MICROSOFT-ISRESPONSEREQUESTED:FALSE 45 | END:VEVENT 46 | BEGIN:VEVENT 47 | DESCRIPTION:\n 48 | RRULE:FREQ=WEEKLY;UNTIL=20240409T190000Z;INTERVAL=1;BYDAY=TU;WKST=SU 49 | UID:040000008200E00074C5B7101A82E0080000000060511C38375EDA01000000000000000 50 | 0100000006E0E001B4680424CA5E2AE60C56886A1 51 | SUMMARY:Some Summary 52 | DTSTART;TZID=Pacific Standard Time:20240312T120000 53 | DTEND;TZID=Pacific Standard Time:20240312T130000 54 | CLASS:PUBLIC 55 | PRIORITY:5 56 | DTSTAMP:20240612T020257Z 57 | TRANSP:OPAQUE 58 | STATUS:CONFIRMED 59 | SEQUENCE:0 60 | LOCATION:Zoom 61 | X-MICROSOFT-CDO-APPT-SEQUENCE:0 62 | X-MICROSOFT-CDO-BUSYSTATUS:BUSY 63 | X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY 64 | X-MICROSOFT-CDO-ALLDAYEVENT:FALSE 65 | X-MICROSOFT-CDO-IMPORTANCE:1 66 | X-MICROSOFT-CDO-INSTTYPE:1 67 | X-MICROSOFT-DONOTFORWARDMEETING:FALSE 68 | X-MICROSOFT-DISALLOW-COUNTER:FALSE 69 | X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT 70 | X-MICROSOFT-ISRESPONSEREQUESTED:FALSE 71 | END:VEVENT 72 | END:VCALENDAR 73 | -------------------------------------------------------------------------------- /testdata/1.inputrc: -------------------------------------------------------------------------------- 1 | set a b 2 | hh a 3 | $include /bravo 4 | 5 | # comment 6 | -------------------------------------------------------------------------------- /testdata/1.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | Account := Object clone do( 4 | balance := 0.0 5 | deposit := method(v, balance = balance + v) 6 | show := method(write("Account balance: $", balance, "\n")) 7 | ) 8 | 9 | "Inital: " print 10 | Account show 11 | 12 | "Depositing $10\n" print 13 | Account deposit(10.0) 14 | 15 | "Final: " print 16 | Account show 17 | -------------------------------------------------------------------------------- /testdata/1.ios: -------------------------------------------------------------------------------- 1 | show flash 2 | configure terminal 3 | -------------------------------------------------------------------------------- /testdata/1.jq: -------------------------------------------------------------------------------- 1 | # Given an array of values as input, generate a stream of values of the 2 | # maximal elements as determined by f. 3 | # Notes: 4 | # 1. If the input is [] then the output stream is empty. 5 | # 2. If f evaluates to null for all the input elements, 6 | # then the output stream will be the stream of all the input items. 7 | 8 | def maximal_by(f): 9 | (map(f) | max) as $mx 10 | | .[] | select(f == $mx); 11 | 12 | 13 | (.columnHeaders | map(.name)) as $headers 14 | | .rows 15 | | map(. as $row 16 | | $headers 17 | | with_entries({"key": .value, 18 | "value": $row[.key]}) ) 19 | 20 | 21 | # Requires: jq 1.5 22 | 23 | # objectify/1 expects an array of atomic values as inputs, and packages 24 | # these into an object with keys specified by the "headers" array and 25 | # values obtained by trimming string values, replacing empty strings 26 | # by null, and converting strings to numbers if possible. 27 | def objectify(headers): 28 | def tonumberq: tonumber? // .; 29 | def trimq: if type == "string" then sub("^ +";"") | sub(" +$";"") else . end; 30 | def tonullq: if . == "" then null else . end; 31 | . as $in 32 | | reduce range(0; headers|length) as $i 33 | ({}; .[headers[$i]] = ($in[$i] | trimq | tonumberq | tonullq) ); 34 | 35 | def csv2jsonHelper: 36 | .[0] as $headers 37 | | reduce (.[1:][] | select(length > 0) ) as $row 38 | ([]; . + [ $row|objectify($headers) ]); 39 | 40 | csv2jsonHelper 41 | -------------------------------------------------------------------------------- /testdata/1.json5: -------------------------------------------------------------------------------- 1 | { 2 | foo: 'bar', 3 | while: true, 4 | 5 | this: 'is a \ 6 | multi-line string', 7 | 8 | // this is an inline comment 9 | here: 'is another', // inline comment 10 | 11 | /* this is a block comment 12 | that continues on another line */ 13 | 14 | hex: 0xdeadbeef, 15 | half: 0.5, 16 | delta: +10, 17 | to: Infinity, // and beyond! 18 | 19 | finally: 'a trailing comma', 20 | oh: ["we shouldn't forget", 'arrays can have', 'trailing commas too'], 21 | } 22 | -------------------------------------------------------------------------------- /testdata/1.jsonl: -------------------------------------------------------------------------------- 1 | ["Name", "Session", "Score", "Completed"] 2 | ["Gilbert", "2013", 24, true] 3 | ["Alexa", "2013", 29, true] 4 | ["May", "2012B", 14, false] 5 | ["Deloise", "2012A", 19, true] 6 | -------------------------------------------------------------------------------- /testdata/1.ld: -------------------------------------------------------------------------------- 1 | SECTIONS 2 | { 3 | .text.start (_KERNEL_BASE_) : { 4 | startup.o( .text ) 5 | } 6 | 7 | .text : ALIGN(CONSTANT(MAXPAGESIZE)) { 8 | _TEXT_START_ = .; 9 | *(.text) 10 | _TEXT_END_ = .; 11 | } 12 | 13 | .data : ALIGN(CONSTANT(MAXPAGESIZE)) { 14 | _DATA_START_ = .; 15 | *(.data) 16 | _DATA_END_ = .; 17 | } 18 | 19 | .bss : ALIGN(CONSTANT(MAXPAGESIZE)) { 20 | _BSS_START_ = .; 21 | *(.bss) 22 | _BSS_END_ = .; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /testdata/1.lesskey: -------------------------------------------------------------------------------- 1 | #command 2 | 3 | #line-edit 4 | 5 | #env 6 | a = b 7 | LESS = -FRQ 8 | LESS_ADVANCED_PREPROCESSOR=1 # lesspipe.sh 9 | # export LESSOPEN="|source-highlight-esc.sh %s" 10 | LESSHISTSIZE='32768' 11 | LESSHISTFILE="$XDG_STATE_HOME/history/less_history" 12 | LESS_TERMCAP_mb=$'\e[1;31m' # start blink 13 | LESS_TERMCAP_md=$'\e[1;36m' # start bold 14 | LESS_TERMCAP_me=$'\e[0m' # end all 15 | LESS_TERMCAP_so=$'\e[01;44;33m' # start reverse video 16 | LESS_TERMCAP_se=$'\e[0m' # end reverse video 17 | LESS_TERMCAP_us=$'\e[1;32m' # start underline 18 | LESS_TERMCAP_ue=$'\e[0m' # end underline 19 | LESS_TERMCAP_us=$'\e[1;32m' # start underline 20 | -------------------------------------------------------------------------------- /testdata/1.ll: -------------------------------------------------------------------------------- 1 | target triple="x86_64" 2 | 3 | %struct.list = type { i64, %struct.list* } 4 | %struct.mystruct = type { double, i32, [10 x i8] } 5 | 6 | @globallist = common global %struct.list* null, align 4 7 | 8 | define void @tailrecursive(i64 %num) 9 | { 10 | LU2: 11 | br label %LU3 12 | LU3: 13 | %u0 = icmp sle i64 %num, 0 14 | %u1 = zext i1 %u0 to i64 15 | %u2 = trunc i64 %u1 to i1 16 | br i1 %u2, label %LU5, label %LU4 17 | LU5: 18 | ret void 19 | LU4: 20 | %u5 = sub i64 %num, 1 21 | call void @tailrecursive(i64 %u5) 22 | ret void 23 | } 24 | 25 | ; Number examples 26 | define double @foo(double %a) #0 27 | { 28 | %1 = fmul double %a, 2.00000e+01 ; Hexadecimal exponent form 29 | %2 = fadd double %1, 0x7f8a ; Hexadecimal 30 | %3 = fdiv double %2, 12.75 ; Float 31 | ret double %3 32 | } 33 | 34 | ; Vector, attribute, struct examples 35 | define double @bar(%struct.mystruct* byval nocapture readonly align 8 %a) 36 | { 37 | vector.body.preheader: 38 | br label %vector.body 39 | vector.body: 40 | %index = phi i64 [ %index.next, %vector.body ], [ 0, %vector.body.preheader ] 41 | %16 = getelementptr inbounds %struct.mystruct, %struct.mystruct* %a, i64 0, i32 3, i64 %index 42 | %17 = bitcast i8* %16 to <16 x i8>* 43 | %wide.load = load <16 x i8>, <16 x i8>* %17, align 8, !tbaa !3 44 | %index.next = add i64 %index, 32 45 | %30 = icmp eq i64 %index.next, 64 46 | br i1 %30, label %exit, label %vector.body, !llvm.loop 47 | exit: 48 | ret void 49 | } 50 | 51 | 52 | define i64 @main() 53 | { 54 | LU51: 55 | br label %LU52 56 | LU52: 57 | call i64 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.println, i32 0, i32 0), i64 0) 58 | ret i64 0 59 | } 60 | 61 | 62 | ; Declartion examples 63 | declare i64 @printf(i8*, ...) 64 | @.println = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1 65 | 66 | 67 | ; Attributes examples 68 | attributes #0 = { nounwind readnone uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" } 69 | 70 | 71 | ; Metadata examples 72 | !llvm.ident = !{!0} 73 | !0 = !{!"clang version 3.7.0 (tags/RELEASE_370/final)"} 74 | !1 = !{!"omnipotent char", !2, i64 0} 75 | !2 = !{!"Simple C/C++ TBAA"} 76 | !3 = !{!1, !1, i64 0} 77 | -------------------------------------------------------------------------------- /testdata/1.log: -------------------------------------------------------------------------------- 1 | LOCAL: Something 2 | WARN: Other 3 | SERVER: Something in 'quotes' 4 | -------------------------------------------------------------------------------- /testdata/1.logstash.conf: -------------------------------------------------------------------------------- 1 | input { 2 | beats { 3 | port => 5044 4 | host => "0.0.0.0" 5 | } 6 | } 7 | filter { 8 | if [fileset][module] == "nginx" { 9 | if [fileset][name] == "access" { 10 | grok { 11 | match => { "message" => ["%{IPORHOST:[nginx][access][remote_ip]} - %{DATA:[nginx][access][user_name]} \[%{HTTPDATE:[nginx][access][time]}\] \"%{WORD:[nginx][access][method]} %{DATA:[nginx][access][url]} HTTP/%{NUMBER:[nginx][access][http_version]}\" %{NUMBER:[nginx][access][response_code]} %{NUMBER:[nginx][access][body_sent][bytes]} \"%{DATA:[nginx][access][referrer]}\" \"%{DATA:[nginx][access][agent]}\""] } 12 | remove_field => "message" 13 | } 14 | mutate { 15 | add_field => { "read_timestamp" => "%{@timestamp}" } 16 | } 17 | date { 18 | match => [ "[nginx][access][time]", "dd/MMM/YYYY:H:m:s Z" ] 19 | remove_field => "[nginx][access][time]" 20 | } 21 | useragent { 22 | source => "[nginx][access][agent]" 23 | target => "[nginx][access][user_agent]" 24 | remove_field => "[nginx][access][agent]" 25 | } 26 | geoip { 27 | source => "[nginx][access][remote_ip]" 28 | target => "[nginx][access][geoip]" 29 | } 30 | } 31 | else if [fileset][name] == "error" { 32 | grok { 33 | match => { "message" => ["%{DATA:[nginx][error][time]} \[%{DATA:[nginx][error][level]}\] %{NUMBER:[nginx][error][pid]}#%{NUMBER:[nginx][error][tid]}: (\*%{NUMBER:[nginx][error][connection_id]} )?%{GREEDYDATA:[nginx][error][message]}"] } 34 | remove_field => "message" 35 | } 36 | mutate { 37 | rename => { "@timestamp" => "read_timestamp" } 38 | } 39 | date { 40 | match => [ "[nginx][error][time]", "YYYY/MM/dd H:m:s" ] 41 | remove_field => "[nginx][error][time]" 42 | } 43 | } 44 | } 45 | } 46 | output { 47 | elasticsearch { 48 | hosts => localhost 49 | manage_template => false 50 | index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /testdata/1.m3u: -------------------------------------------------------------------------------- 1 | #EXTM3U 2 | 3 | #EXTINF:123, Sample artist - Sample title 4 | Sample.mp3 5 | 6 | #EXTINF:321,Example Artist - Example title 7 | Greatest Hits\Example.ogg 8 | -------------------------------------------------------------------------------- /testdata/1.map: -------------------------------------------------------------------------------- 1 | Address Publics by Value Rva+Base Lib:Object 2 | 0001:00000000 _WinMain@16 00401000 f MAPFILE.obj 3 | 0001:000000c0 ?MyRegisterClass@@YAGPAUHINSTANCE__@@@Z 004010c0 f MAPFILE.obj 4 | 0001:00000150 ?InitInstance@@YAHPAUHINSTANCE__@@H@Z 00401150 f MAPFILE.obj 5 | 0001:000001b0 ?WndProc@@YGJPAUHWND__@@IIJ@Z 004011b0 f MAPFILE.obj 6 | 0001:00000310 ?About@@YGJPAUHWND__@@IIJ@Z 00401310 f MAPFILE.obj 7 | 0001:00000350 _WinMainCRTStartup 00401350 f LIBC:wincrt0.obj 8 | 0001:00000446 __amsg_exit 00401446 f LIBC:wincrt0.obj 9 | 0001:0000048f __cinit 0040148f f LIBC:crt0dat.obj 10 | 0001:000004bc _exit 004014bc f LIBC:crt0dat.obj 11 | 0001:000004cd __exit 004014cd f LIBC:crt0dat.obj 12 | 0001:00000591 __XcptFilter 00401591 f LIBC:winxfltr.obj 13 | 0001:00000715 __wincmdln 00401715 f LIBC:wincmdln.obj 14 | //SNIPPED FOR BETTER READING 15 | 0003:00002ab4 __FPinit 00408ab4 16 | 0003:00002ab8 __acmdln 00408ab8 17 | 18 | entry point at 0001:00000350 19 | 20 | Static symbols 21 | 22 | 0001:000035d0 LeadUp1 004045d0 f LIBC:memmove.obj 23 | 0001:000035fc LeadUp2 004045fc f LIBC:memmove.obj 24 | //SNIPPED FOR BETTER READING 25 | 0001:00000577 __initterm 00401577 f LIBC:crt0dat.obj 26 | 0001:0000046b _fast_error_exit 0040146b f LIBC:wincrt0.obj 27 | -------------------------------------------------------------------------------- /testdata/1.nix: -------------------------------------------------------------------------------- 1 | { 2 | # dependencies 3 | stdenv, fetchurl, nix-gitignore, 4 | 5 | # args 6 | localFiles ? false 7 | }: 8 | 9 | stdenv.mkDerivation rec { 10 | 11 | pname = "hello"; 12 | version = "2.10"; 13 | 14 | src = ( 15 | if localFiles then 16 | nix-gitignore.gitignoreSourcePure [ "result" ] ./. 17 | else 18 | fetchurl { 19 | url = "mirror://gnu/hello/${pname}-${version}.tar.gz"; 20 | sha256 = "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"; 21 | } 22 | ); 23 | 24 | doCheck = true; 25 | 26 | passthru = { 27 | executable = pname; 28 | }; 29 | 30 | meta = with stdenv.lib; { 31 | description = "A program that produces a familiar, friendly greeting"; 32 | longDescription = '' 33 | GNU Hello is a program that prints "Hello, world!" when you run it. 34 | It is fully customizable. 35 | ''; 36 | homepage = https://www.gnu.org/software/hello/manual/; 37 | changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}"; 38 | license = licenses.gpl3Plus; 39 | maintainers = [ maintainers.eelco ]; 40 | platforms = platforms.all; 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /testdata/1.odin: -------------------------------------------------------------------------------- 1 | package load_json 2 | 3 | import "core:fmt" 4 | import "core:encoding/json" 5 | 6 | import "core:os" 7 | 8 | main :: proc() { 9 | // Load in your json file! 10 | data, ok := os.read_entire_file_from_filename("game_settings.json") 11 | if !ok { 12 | fmt.eprintln("Failed to load the file!") 13 | return 14 | } 15 | defer delete(data) // Free the memory at the end 16 | 17 | // Parse the json file. 18 | json_data, err := json.parse(data) 19 | if err != .None { 20 | fmt.eprintln("Failed to parse the json file.") 21 | fmt.eprintln("Error:", err) 22 | return 23 | } 24 | defer json.destroy_value(json_data) 25 | 26 | // Access the Root Level Object 27 | root := json_data.(json.Object) 28 | 29 | fmt.println("Root:") 30 | fmt.println( 31 | "window_width:", 32 | root["window_width"], 33 | "window_height:", 34 | root["window_height"], 35 | "window_title:", 36 | root["window_title"], 37 | ) 38 | fmt.println("rendering_api:", root["rendering_api"]) 39 | 40 | // Store the value. 41 | window_width := root["window_width"].(json.Float) 42 | fmt.println("window_width:", window_width) 43 | 44 | fmt.println("") 45 | 46 | fmt.println("Renderer Settings:") 47 | renderer_settings := root["renderer_settings"].(json.Object) 48 | fmt.println("msaa:", renderer_settings["msaa"]) 49 | fmt.println("depth_testing:", renderer_settings["depth_testing"]) 50 | } 51 | -------------------------------------------------------------------------------- /testdata/1.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: Lingohub 1.0.1\n" 4 | "Report-Msgid-Bugs-To: support@lingohub.com \n" 5 | "Last-Translator: Marko Bošković \n" 6 | "Language: de\n" 7 | "MIME-Version: 1.0\n" 8 | "Content-Type: text/plain; charset=UTF-8\n" 9 | "Content-Transfer-Encoding: 8bit\n" 10 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 11 | 12 | msgid "Let’s make the web multilingual." 13 | msgstr "Machen wir das Internet mehrsprachig." 14 | 15 | msgid "We connect developers and translators around the globe " 16 | "on Lingohub for a fantastic localization experience." 17 | msgstr "Wir verbinden Entwickler mit Übersetzern weltweit " 18 | "auf Lingohub für ein fantastisches Lokalisierungs-Erlebnis." 19 | 20 | msgid "Welcome back, %1$s! Your last visit was on %2$s" 21 | msgstr "Willkommen zurück, %1$s! Dein letzter Besuch war am %2$s" 22 | 23 | msgid "%d page read." 24 | msgid_plural "%d pages read." 25 | msgstr[0] "Eine Seite gelesen wurde." 26 | msgstr[1] "%d Seiten gelesen wurden." 27 | -------------------------------------------------------------------------------- /testdata/1.proto: -------------------------------------------------------------------------------- 1 | message Person { 2 | string name = 1; 3 | int32 id = 2; // Unique ID number for this person. 4 | string email = 3; 5 | 6 | enum PhoneType { 7 | MOBILE = 0; 8 | HOME = 1; 9 | WORK = 2; 10 | } 11 | 12 | message PhoneNumber { 13 | string number = 1; 14 | PhoneType type = 2; 15 | } 16 | 17 | repeated PhoneNumber phones = 4; 18 | 19 | google.protobuf.Timestamp last_updated = 5; 20 | } 21 | 22 | // Our address book file is just one of these. 23 | message AddressBook { 24 | repeated Person people = 1; 25 | } 26 | -------------------------------------------------------------------------------- /testdata/1.psqlrc: -------------------------------------------------------------------------------- 1 | \set COMP_KEYWORD_CASE upper 2 | 3 | \x auto 4 | 5 | \pset null '[null]' 6 | 7 | -- Display timings 8 | \timing 9 | -------------------------------------------------------------------------------- /testdata/1.qvs: -------------------------------------------------------------------------------- 1 | ///$tab AsOfTable 2 | // Name of the optional script file that defines additonal AsOfTable fields. 3 | SET Qvc.Calendar.v.ExtFields=AsOfTableExtFields.qvs; 4 | SUB Qvc.AsOfTable (_dateField) 5 | /** 6 | @source Qvc_AsOfTable.qvs 7 | Create an AsOfTable. 8 | 9 | @param 1 String. FieldName containing a Date or some other ordered field, such as Month, Year, etc. 10 | 11 | @syntax CALL Qvc.AsOfTable('Date'); 12 | */ 13 | 14 | UNQUALIFY "_qvctemp.*"; // UNQUALIFY all qvctemp fields 15 | 16 | // Set up Field and Tables names. 17 | SET _tableName = 'AsOfTable_$(_dateField)'; 18 | SET _asOfField = 'AsOf $(_dateField)'; 19 | 20 | //REM This bit of code is a workaround for the fact that FieldValue does not copy format.; 21 | //REM We will determine which table has our source field and load a row to get the format.; 22 | SET _qvctemp.vFound=0; 23 | FOR _qvctemp.i = 0 to NoOfTables()-1 24 | LET _qvctemp.vTablename=TableName($(_qvctemp.i)); 25 | FOR _qvctemp.j = 1 to NoOfFields('$(_qvctemp.vTablename)') 26 | IF FieldName($(_qvctemp.j),'$(_qvctemp.vTablename)')='$(_dateField)' THEN 27 | SET _qvctemp.vFound=-1; 28 | _qvctemp.AsOfTable.Format.Dummy: 29 | FIRST 1 LOAD [$(_dateField)] as [$(_asOfField)] Resident [$(_qvctemp.vTablename)]; 30 | ENDIF 31 | EXIT FOR WHEN $(_qvctemp.vFound); 32 | NEXT _qvctemp.j 33 | EXIT FOR WHEN $(_qvctemp.vFound); 34 | NEXT _qvctemp.i 35 | // Cleanup temp vars 36 | SET _qvctemp.i=; 37 | SET _qvctemp.j=; 38 | SET _qvctemp.vTablename=; 39 | SET _qvctemp.vFound=; 40 | 41 | _qvctemp.AsOfTemp: 42 | NoConcatenate 43 | LOAD 44 | FieldValue('$(_dateField)', recno()) as [$(_asOfField)] 45 | AUTOGENERATE FieldValueCount('$(_dateField)'); 46 | OUTER JOIN (_qvctemp.AsOfTemp) 47 | LOAD 48 | Date(FieldValue('$(_dateField)', recno())) as [$(_dateField)] 49 | AUTOGENERATE FieldValueCount('$(_dateField)'); 50 | // Load the table into the target table, keeping only those dates that are -equal to or smaller- than the AsOf date 51 | [$(_tableName)]: 52 | 53 | NOCONCATENATE LOAD 54 | [$(_dateField)] 55 | ,[$(_asOfField)] 56 | ,((Year([$(_asOfField)]) - Year([$(_dateField)])) * 12) + 57 | Month([$(_asOfField)]) - Month([$(_dateField)]) as [AsOf Months Ago] 58 | ,[$(_asOfField)] - [$(_dateField)] as [AsOf Days Ago] 59 | // $(Include=$(Qvc.Global.Extension.Directory)\$(Qvc.AsOfTable.v.ExtFields)); 60 | RESIDENT _qvctemp.AsOfTemp 61 | WHERE [$(_asOfField)] >= [$(_dateField)] 62 | ; 63 | DROP TABLE _qvctemp.AsOfTemp; 64 | DROP TABLE _qvctemp.AsOfTable.Format.Dummy; 65 | 66 | // Cleanup temp vars 67 | 68 | ENDSUB 69 | -------------------------------------------------------------------------------- /testdata/1.rasi: -------------------------------------------------------------------------------- 1 | .something {} 2 | -------------------------------------------------------------------------------- /testdata/1.styl: -------------------------------------------------------------------------------- 1 | border-radius() 2 | -webkit-border-radius arguments 3 | -moz-border-radius arguments 4 | border-radius arguments 5 | 6 | body a 7 | font 12px/1.4 "Lucida Grande", Arial, sans-serif 8 | background black 9 | color #ccc 10 | 11 | form input 12 | padding 5px 13 | border 1px solid 14 | border-radius 5px 15 | -------------------------------------------------------------------------------- /testdata/1.sxhkdrc.conf: -------------------------------------------------------------------------------- 1 | # 2 | # wm independent hotkeys 3 | # 4 | 5 | # terminal emulator 6 | super + Return 7 | urxvt 8 | 9 | # program launcher 10 | super + @space 11 | dmenu_run 12 | 13 | # make sxhkd reload its configuration files: 14 | super + Escape 15 | pkill -USR1 -x sxhkd 16 | 17 | # 18 | # bspwm hotkeys 19 | # 20 | 21 | # quit/restart bspwm 22 | super + alt + {q,r} 23 | bspc {quit,wm -r} 24 | 25 | # close and kill 26 | super + {_,shift + }w 27 | bspc node -{c,k} 28 | 29 | # alternate between the tiled and monocle layout 30 | super + m 31 | bspc desktop -l next 32 | 33 | # send the newest marked node to the newest preselected node 34 | super + y 35 | bspc node newest.marked.local -n newest.!automatic.local 36 | 37 | # swap the current node and the biggest window 38 | super + g 39 | bspc node -s biggest.window 40 | 41 | # 42 | # state/flags 43 | # 44 | 45 | # set the window state 46 | super + {t,shift + t,s,f} 47 | bspc node -t {tiled,pseudo_tiled,floating,fullscreen} 48 | 49 | # set the node flags 50 | super + ctrl + {m,x,y,z} 51 | bspc node -g {marked,locked,sticky,private} 52 | 53 | # 54 | # focus/swap 55 | # 56 | 57 | # focus the node in the given direction 58 | super + {_,shift + }{h,j,k,l} 59 | bspc node -{f,s} {west,south,north,east} 60 | 61 | # focus the node for the given path jump 62 | super + {p,b,comma,period} 63 | bspc node -f @{parent,brother,first,second} 64 | 65 | # focus the next/previous window in the current desktop 66 | super + {_,shift + }c 67 | bspc node -f {next,prev}.local.!hidden.window 68 | 69 | # focus the next/previous desktop in the current monitor 70 | super + bracket{left,right} 71 | bspc desktop -f {prev,next}.local 72 | 73 | # focus the last node/desktop 74 | super + {grave,Tab} 75 | bspc {node,desktop} -f last 76 | 77 | # focus the older or newer node in the focus history 78 | super + {o,i} 79 | bspc wm -h off; \ 80 | bspc node {older,newer} -f; \ 81 | bspc wm -h on 82 | 83 | # focus or send to the given desktop 84 | super + {_,shift + }{1-9,0} 85 | bspc {desktop -f,node -d} '^{1-9,10}' 86 | 87 | # 88 | # preselect 89 | # 90 | 91 | # preselect the direction 92 | super + ctrl + {h,j,k,l} 93 | bspc node -p {west,south,north,east} 94 | 95 | # preselect the ratio 96 | super + ctrl + {1-9} 97 | bspc node -o 0.{1-9} 98 | 99 | # cancel the preselection for the focused node 100 | super + ctrl + space 101 | bspc node -p cancel 102 | 103 | # cancel the preselection for the focused desktop 104 | super + ctrl + shift + space 105 | bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 106 | 107 | # 108 | # move/resize 109 | # 110 | 111 | # expand a window by moving one of its side outward 112 | super + alt + {h,j,k,l} 113 | bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} 114 | 115 | # contract a window by moving one of its side inward 116 | super + alt + shift + {h,j,k,l} 117 | bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} 118 | 119 | # move a floating window 120 | super + {Left,Down,Up,Right} 121 | bspc node -v {-20 0,0 20,0 -20,20 0} 122 | -------------------------------------------------------------------------------- /testdata/1.t4: -------------------------------------------------------------------------------- 1 | <#@ output extension=".cs" #> 2 | <#@ assembly name="System.Xml" #> 3 | <# 4 | System.Xml.XmlDocument configurationData = ...; // Read a data file here. 5 | #> 6 | namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #> 7 | { 8 | ... // More code here. 9 | } 10 | -------------------------------------------------------------------------------- /testdata/1.td: -------------------------------------------------------------------------------- 1 | let Defs = [EFLAGS], 2 | isCommutable = 1, // X = ADD Y,Z --> X = ADD Z,Y 3 | isConvertibleToThreeAddress = 1 in // Can transform into LEA. 4 | def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), 5 | (ins GR32:$src1, GR32:$src2), 6 | "add{l}\t{$src2, $dst|$dst, $src2}", 7 | [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>; 8 | -------------------------------------------------------------------------------- /testdata/1.textproto: -------------------------------------------------------------------------------- 1 | convolution_benchmark { 2 | label: "NHWC_128x20x20x56x160" 3 | input { 4 | dimension: [128, 56, 20, 20] 5 | data_type: DATA_HALF 6 | format: TENSOR_NHWC 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /testdata/1.thrift: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | # Thrift Tutorial 21 | # Mark Slee (mcslee@facebook.com) 22 | # 23 | # This file aims to teach you how to use Thrift, in a .thrift file. Neato. The 24 | # first thing to notice is that .thrift files support standard shell comments. 25 | # This lets you make your thrift file executable and include your Thrift build 26 | # step on the top line. And you can place comments like this anywhere you like. 27 | # 28 | # Before running this file, you will need to have installed the thrift compiler 29 | # into /usr/local/bin. 30 | 31 | /** 32 | * The first thing to know about are types. The available types in Thrift are: 33 | * 34 | * bool Boolean, one byte 35 | * i8 (byte) Signed 8-bit integer 36 | * i16 Signed 16-bit integer 37 | * i32 Signed 32-bit integer 38 | * i64 Signed 64-bit integer 39 | * double 64-bit floating point value 40 | * string String 41 | * binary Blob (byte array) 42 | * map Map from one type to another 43 | * list Ordered list of one type 44 | * set Set of unique elements of one type 45 | * 46 | * Did you also notice that Thrift supports C style comments? 47 | */ 48 | 49 | // Just in case you were wondering... yes. We support simple C comments too. 50 | 51 | /** 52 | * Thrift files can reference other Thrift files to include common struct 53 | * and service definitions. These are found using the current path, or by 54 | * searching relative to any paths specified with the -I compiler flag. 55 | * 56 | * Included objects are accessed using the name of the .thrift file as a 57 | * prefix. i.e. shared.SharedObject 58 | */ 59 | include "shared.thrift" 60 | 61 | /** 62 | * Thrift files can namespace, package, or prefix their output in various 63 | * target languages. 64 | */ 65 | 66 | namespace cl tutorial 67 | namespace cpp tutorial 68 | namespace d tutorial 69 | namespace dart tutorial 70 | namespace java tutorial 71 | namespace php tutorial 72 | namespace perl tutorial 73 | namespace haxe tutorial 74 | namespace netstd tutorial 75 | 76 | /** 77 | * Thrift lets you do typedefs to get pretty names for your types. Standard 78 | * C style here. 79 | */ 80 | typedef i32 MyInteger 81 | 82 | /** 83 | * Thrift also lets you define constants for use across languages. Complex 84 | * types and structs are specified using JSON notation. 85 | */ 86 | const i32 INT32CONSTANT = 9853 87 | const map MAPCONSTANT = {'hello':'world', 'goodnight':'moon'} 88 | 89 | /** 90 | * You can define enums, which are just 32 bit integers. Values are optional 91 | * and start at 1 if not supplied, C style again. 92 | */ 93 | enum Operation { 94 | ADD = 1, 95 | SUBTRACT = 2, 96 | MULTIPLY = 3, 97 | DIVIDE = 4 98 | } 99 | 100 | /** 101 | * Structs are the basic complex data structures. They are comprised of fields 102 | * which each have an integer identifier, a type, a symbolic name, and an 103 | * optional default value. 104 | * 105 | * Fields can be declared "optional", which ensures they will not be included 106 | * in the serialized output if they aren't set. Note that this requires some 107 | * manual management in some languages. 108 | */ 109 | struct Work { 110 | 1: i32 num1 = 0, 111 | 2: i32 num2, 112 | 3: Operation op, 113 | 4: optional string comment, 114 | } 115 | 116 | /** 117 | * Structs can also be exceptions, if they are nasty. 118 | */ 119 | exception InvalidOperation { 120 | 1: i32 whatOp, 121 | 2: string why 122 | } 123 | 124 | /** 125 | * Ahh, now onto the cool part, defining a service. Services just need a name 126 | * and can optionally inherit from another service using the extends keyword. 127 | */ 128 | service Calculator extends shared.SharedService { 129 | 130 | /** 131 | * A method definition looks like C code. It has a return type, arguments, 132 | * and optionally a list of exceptions that it may throw. Note that argument 133 | * lists and exception lists are specified using the exact same syntax as 134 | * field lists in struct or exception definitions. 135 | */ 136 | 137 | void ping(), 138 | 139 | i32 add(1:i32 num1, 2:i32 num2), 140 | 141 | i32 calculate(1:i32 logid, 2:Work w) throws (1:InvalidOperation ouch), 142 | 143 | /** 144 | * This method has a oneway modifier. That means the client only makes 145 | * a request and does not listen for any response at all. Oneway methods 146 | * must be void. 147 | */ 148 | oneway void zip() 149 | 150 | } 151 | 152 | /** 153 | * That just about covers the basics. Take a look in the test/ folder for more 154 | * detailed examples. After you run this file, your generated code shows up 155 | * in folders with names gen-. The generated code isn't too scary 156 | * to look at. It even has pretty indentation. 157 | */ 158 | -------------------------------------------------------------------------------- /testdata/1.typoscript: -------------------------------------------------------------------------------- 1 | config.additionalHeaders { 2 | 10 { 3 | # The header string 4 | header = foo 5 | 6 | # Do not replace previous headers with the same name. 7 | replace = 0 8 | 9 | # Force a 401 HTTP response code 10 | httpResponseCode = 401 11 | } 12 | # Always set cache headers to private, overwriting the default TYPO3 Cache-control header 13 | 20.header = Cache-control: Private 14 | } 15 | -------------------------------------------------------------------------------- /testdata/1.uavcan: -------------------------------------------------------------------------------- 1 | # 2 | # A header comment. 3 | # Note that the formatting is broken deliberately. 4 | # 5 | 6 | @union 7 | 8 | float16 foo 9 | 10 | float16 BAR = 12.34 # This is BAR 11 | truncated uint8 bar 12 | 13 | int32 FOO = - 42 14 | -------------------------------------------------------------------------------- /testdata/1.vcard: -------------------------------------------------------------------------------- 1 | BEGIN:VCARD 2 | FN:Rene van der Harten 3 | N:van der Harten;Rene;J.;Sir;R.D.O.N. 4 | SORT-STRING:Harten 5 | END:VCARD 6 | -------------------------------------------------------------------------------- /testdata/1.xdefaults: -------------------------------------------------------------------------------- 1 | *AutoRaise: on 2 | *DeIconifyWarp: on 3 | *warp:on 4 | *TitleFont:andysans12 5 | *scrollBar: true 6 | *font: Rom10.500 7 | Mwm*menu*foreground: black 8 | Mwm*menu*background: CornflowerBlue 9 | Mwm*menu*RootMenu*foreground: black 10 | Mwm*menu*RootMenu*background: CornflowerBlue 11 | Mwm*icon*foreground: grey25 12 | Mwm*icon*background: LightGray 13 | Mwm*foreground: black 14 | Mwm*background: LightSkyBlue 15 | Mwm*bottomShadowColor: Blue1 16 | Mwm*topShadowColor: CornflowerBlue 17 | Mwm*activeForeground: white 18 | Mwm*activeBackground: Blue1 19 | Mwm*activeBottomShadowColor: black 20 | Mwm*activeTopShadowColor: LightSkyBlue 21 | Mwm*border: black 22 | Mwm*highlight:white 23 | -------------------------------------------------------------------------------- /testdata/1.zone: -------------------------------------------------------------------------------- 1 | $ORIGIN example.com. 2 | $TTL 86400 3 | @ IN SOA dns1.example.com. hostmaster.example.com. ( 4 | 2001062501 ; serial 5 | 21600 ; refresh after 6 hours 6 | 3600 ; retry after 1 hour 7 | 604800 ; expire after 1 week 8 | 86400 ) ; minimum TTL of 1 day 9 | 10 | 11 | IN NS dns1.example.com. 12 | IN NS dns2.example.com. 13 | 14 | 15 | IN MX 10 mail.example.com. 16 | IN MX 20 mail2.example.com. 17 | 18 | 19 | dns1 IN A 10.0.1.1 20 | dns2 IN A 10.0.1.2 21 | 22 | 23 | server1 IN A 10.0.1.5 24 | server2 IN A 10.0.1.6 25 | 26 | 27 | ftp IN A 10.0.1.3 28 | IN A 10.0.1.4 29 | 30 | mail IN CNAME server1 31 | mail2 IN CNAME server2 32 | 33 | 34 | www IN CNAME server1 35 | -------------------------------------------------------------------------------- /testdata/configure.m4: -------------------------------------------------------------------------------- 1 | AC_INIT([amhello], [1.0], [bug-automake@gnu.org]) 2 | AM_INIT_AUTOMAKE([-Wall -Werror foreign]) 3 | AC_PROG_CC 4 | AC_CONFIG_HEADERS([config.h]) 5 | AC_CONFIG_FILES([ 6 | Makefile 7 | src/Makefile 8 | ]) 9 | AC_OUTPUT 10 | -------------------------------------------------------------------------------- /testdata/lesskey: -------------------------------------------------------------------------------- 1 | #command 2 | 3 | #line-edit 4 | 5 | #env 6 | LESS = -FRQ 7 | LESS_ADVANCED_PREPROCESSOR = 1 8 | LESSOPEN= |source-highlight-esc.sh\ %s 9 | LESSHISTSIZE= 32768 10 | -------------------------------------------------------------------------------- /testdata/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | 4 | User-agent: * 5 | Disallow: /~joe/junk.html 6 | Disallow: /~joe/foo.html 7 | Disallow: /~joe/bar.html 8 | 9 | # this is a comment 10 | -------------------------------------------------------------------------------- /testdata/todo.txt: -------------------------------------------------------------------------------- 1 | (A) 2018-03-17 Scaffold out the basic project. 2 | x (B) 2018-03-17 Figure out what the deal is with the RegExs used in language definitions. @TodoTxt 3 | x (C) 2018-03-17 Define miscellaneous tags. ex:this. due:2018-03-17. 4 | 2018-03-17 Figure out how to disable language support for normal ".txt" files. +vscode-todotxt @TodoTxt 5 | -------------------------------------------------------------------------------- /testdata/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | package-1@^1.0.0: 4 | version "1.0.3" 5 | resolved "https://registry.npmjs.org/package-1/-/package-1-1.0.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" 6 | package-2@^2.0.0: 7 | version "2.0.1" 8 | resolved "https://registry.npmjs.org/package-2/-/package-2-2.0.1.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" 9 | dependencies: 10 | package-4 "^4.0.0" 11 | package-3@^3.0.0: 12 | version "3.1.9" 13 | resolved "https://registry.npmjs.org/package-3/-/package-3-3.1.9.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" 14 | dependencies: 15 | package-4 "^4.5.0" 16 | package-4@^4.0.0, package-4@^4.5.0: 17 | version "4.6.3" 18 | resolved "https://registry.npmjs.org/package-4/-/package-4-2.6.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" 19 | --------------------------------------------------------------------------------