Feat: Add syntax highlighting for a lot more languages
This commit is contained in:
92
samples/fish.fish
Normal file
92
samples/fish.fish
Normal file
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env fish
|
||||
# Fish highlighting torture test 🐟
|
||||
|
||||
# === Variables ===
|
||||
set normal_var "hello"
|
||||
set -l local_var 123
|
||||
set -gx GLOBAL_VAR "world"
|
||||
set PATH $PATH /usr/local/bin
|
||||
set --erase OLD_VAR
|
||||
|
||||
# Builtin variables
|
||||
echo $HOME $PWD $USER $FISH_VERSION
|
||||
|
||||
# === Strings ===
|
||||
set single 'single quoted string'
|
||||
set double "double quoted $normal_var"
|
||||
set escaped "newline\n tab\t dollar\$"
|
||||
|
||||
# === Conditionals ===
|
||||
if test $normal_var = "hello"
|
||||
echo "equal"
|
||||
else if test $normal_var != "world"
|
||||
echo "not equal"
|
||||
end
|
||||
|
||||
# === Logical operators ===
|
||||
true and echo "yes"
|
||||
false or echo "fallback"
|
||||
not false
|
||||
|
||||
# === Arithmetic ===
|
||||
set x 10
|
||||
set y 20
|
||||
math "$x + $y"
|
||||
if test (math "$x * 2") -gt 15
|
||||
echo "math works"
|
||||
end
|
||||
|
||||
# === Loops ===
|
||||
for i in 1 2 3
|
||||
echo "loop $i"
|
||||
end
|
||||
|
||||
while test $x -gt 0
|
||||
set x (math "$x - 1")
|
||||
end
|
||||
|
||||
# === Functions ===
|
||||
function greet --argument name
|
||||
echo "Hello $name"
|
||||
end
|
||||
|
||||
greet "world"
|
||||
|
||||
# === Command substitution ===
|
||||
set files (ls | grep ".fish")
|
||||
|
||||
# === Redirections ===
|
||||
echo "output" > /tmp/fish_test.txt
|
||||
cat < /tmp/fish_test.txt >> /tmp/fish_log.txt
|
||||
|
||||
# === Process substitution ===
|
||||
diff (ls /bin) (ls /usr/bin)
|
||||
|
||||
# === Case statement ===
|
||||
switch $argv[1]
|
||||
case start
|
||||
echo "Starting"
|
||||
case stop
|
||||
echo "Stopping"
|
||||
case '*'
|
||||
echo "Unknown"
|
||||
end
|
||||
|
||||
# === Subshell ===
|
||||
begin
|
||||
echo "inside begin/end"
|
||||
end
|
||||
|
||||
# === Comments & operators ===
|
||||
# && || | & ! should all highlight
|
||||
true && echo "ok" || echo "fail"
|
||||
|
||||
# === Regex ===
|
||||
string match -r '^[a-z]+$' "hello"
|
||||
|
||||
# === Test builtin ===
|
||||
test -f /etc/passwd
|
||||
test ! -d /does/not/exist
|
||||
|
||||
# === Exit ===
|
||||
exit 0
|
||||
Reference in New Issue
Block a user