This commit is contained in:
Robert Jelic
2025-02-16 18:04:24 +01:00
parent 41e6149828
commit 31787b0e9b
2670 changed files with 1037781 additions and 0 deletions

189
node_modules/shiki/languages/fish.tmLanguage.json generated vendored Normal file
View File

@@ -0,0 +1,189 @@
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"fileTypes": ["fish"],
"firstLineMatch": "^#!.*\\bfish\\b",
"foldingStartMarker": "^\\s*(function|while|if|switch|for|begin)\\s.*$",
"foldingStopMarker": "^\\s*end\\s*$",
"keyEquivalent": "^~F",
"name": "fish",
"patterns": [
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.fish"
}
},
"comment": "Double quoted string",
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.fish"
}
},
"name": "string.quoted.double.fish",
"patterns": [
{
"include": "#variable"
},
{
"comment": "https://fishshell.com/docs/current/#quotes",
"match": "\\\\(\\\"|\\$|$|\\\\)",
"name": "constant.character.escape.fish"
}
]
},
{
"begin": "'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.fish"
}
},
"comment": "Single quoted string",
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.fish"
}
},
"name": "string.quoted.single.fish",
"patterns": [
{
"comment": "https://fishshell.com/docs/current/#quotes",
"match": "\\\\('|`|\\\\)",
"name": "constant.character.escape.fish"
}
]
},
{
"captures": {
"1": {
"name": "punctuation.definition.comment.fish"
}
},
"comment": "line comment",
"match": "(?<!\\$)(#)(?!\\{).*$\\n?",
"name": "comment.line.number-sign.fish"
},
{
"comment": "name of command, either a function or a binary",
"match": "(^\\s*|&&\\s*|\\|\\s*|\\(\\s*|[;]\\s*|\\b(if|while)\\b\\s+)(?!(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!]))([a-zA-Z_\\-0-9\\[\\].]+)",
"captures": {
"2": {
"name": "keyword.control.fish"
},
"4": {
"name": "support.function.command.fish"
}
}
},
{
"comment": "keywords that affect control flow",
"match": "(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!])",
"name": "keyword.control.fish"
},
{
"match": "(?<!\\.)\\bfunction\\b(?![?!])",
"name": "storage.type.fish"
},
{
"match": "\\|",
"name": "keyword.operator.pipe.fish"
},
{
"comment": "IO Redirection",
"match": "(?x:\n<|# Standard Input\n(>|\\^|>>|\\^\\^)(&[012\\-])?| # Redirection of stderr\n[012](<|>|>>)(&[012\\-])? # Redirect input/output of file descriptors\n)",
"name": "keyword.operator.redirect.fish"
},
{
"match": "&",
"name": "keyword.operator.background.fish"
},
{
"match": "\\*\\*|\\*|\\?",
"name": "keyword.operator.glob.fish"
},
{
"comment": "command short/long options",
"match": "\\s(-{1,2}[a-zA-Z_\\-0-9]+|-\\w)\\b",
"captures": {
"1": {
"name": "source.option.fish"
}
}
},
{
"include": "#variable"
},
{
"include": "#escape"
}
],
"repository": {
"escape": {
"patterns": [
{
"comment": "single character character escape sequences",
"match": "\\\\[abefnrtv $*?~#(){}\\[\\]<>^&|;\"']",
"name": "constant.character.escape.single.fish"
},
{
"comment": "escapes the ascii character with the specified value (hexadecimal)",
"match": "\\\\x[0-9a-fA-F]{1,2}",
"name": "constant.character.escape.hex-ascii.fish"
},
{
"comment": "escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.",
"match": "\\\\X[0-9a-fA-F]{1,2}",
"name": "constant.character.escape.hex-byte.fish"
},
{
"comment": "escapes the ascii character with the specified value (octal)",
"match": "\\\\[0-7]{1,3}",
"name": "constant.character.escape.octal.fish"
},
{
"comment": "escapes the 16-bit unicode character with the specified value (hexadecimal)",
"match": "\\\\u[0-9a-fA-F]{1,4}",
"name": "constant.character.escape.unicode-16-bit.fish"
},
{
"comment": "escapes the 32-bit unicode character with the specified value (hexadecimal)",
"match": "\\\\U[0-9a-fA-F]{1,8}",
"name": "constant.character.escape.unicode-32-bit.fish"
},
{
"comment": "escapes the control sequence generated by pressing the control key and the specified letter",
"match": "\\\\c[a-zA-Z]",
"name": "constant.character.escape.control.fish"
}
]
},
"variable": {
"patterns": [
{
"comment": "Built-in variables visible by pressing $ TAB TAB in a new shell",
"captures": {
"1": {
"name": "punctuation.definition.variable.fish"
}
},
"match": "(\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\b",
"name": "variable.language.fish"
},
{
"captures": {
"1": {
"name": "punctuation.definition.variable.fish"
}
},
"match": "(\\$)[a-zA-Z_][a-zA-Z0-9_]*",
"name": "variable.other.normal.fish"
}
]
}
},
"scopeName": "source.fish",
"uuid": "9CA6DB6F-A16F-4836-A058-617C7378775D"
}