diff --git a/lexers/embedded/hyprlang.xml b/lexers/embedded/hyprlang.xml new file mode 100644 index 0000000..3812415 --- /dev/null +++ b/lexers/embedded/hyprlang.xml @@ -0,0 +1,137 @@ + + + Hyprlang + hyprlang + hypr + hypr*.conf + *.hypr + text/x-hyprlang + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lexers/testdata/analysis/hyprlang.actual b/lexers/testdata/analysis/hyprlang.actual new file mode 100644 index 0000000..2c68437 --- /dev/null +++ b/lexers/testdata/analysis/hyprlang.actual @@ -0,0 +1,6 @@ +$mainMod = SUPER +monitor=DP-1,1378x1024@60,0x0,1 +exec-once = waybar +input { + kb_layout = us +} diff --git a/lexers/testdata/analysis/hyprlang.expected b/lexers/testdata/analysis/hyprlang.expected new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/lexers/testdata/analysis/hyprlang.expected @@ -0,0 +1 @@ +1 diff --git a/lexers/testdata/hyprlang.actual b/lexers/testdata/hyprlang.actual new file mode 100644 index 0000000..e704e51 --- /dev/null +++ b/lexers/testdata/hyprlang.actual @@ -0,0 +1,33 @@ +# Hyprland configuration sample +$mainMod = SUPER +$terminal = kitty +x = 1 + +source = ~/.config/hypr/env.conf + +monitor=DP-1,1378x1024@60,0x0,1 + +exec-once = hyprpaper & waybar +exec = [monitor 1; float; move 20% 30%] kitty +execr = notify-send Hyprland ready + +input { + kb_layout = us + follow_mouse = 1 +} + +section:device { + name = epic-mouse-v1 + sensitivity = -0.5 + enabled = true +} + +decoration { + rounding = 8 + col.shadow = rgba(1a1a1aee) + col.active_border = rgb(33ccff) rgb(ff00cc) 45deg +} + +bind = $mainMod, Return, exec, $terminal +bindm = $mainMod, mouse:272, movewindow +windowrulev2 = float, class:^(pavucontrol)$ diff --git a/lexers/testdata/hyprlang.expected b/lexers/testdata/hyprlang.expected new file mode 100644 index 0000000..d4286b8 --- /dev/null +++ b/lexers/testdata/hyprlang.expected @@ -0,0 +1,202 @@ +[ + {"type":"CommentSingle","value":"# Hyprland configuration sample"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameVariable","value":"$mainMod"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameConstant","value":"SUPER"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameVariable","value":"$terminal"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"kitty"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameAttribute","value":"x"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"1"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"KeywordReserved","value":"source"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"~/.config/hypr/env.conf"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameAttribute","value":"monitor"}, + {"type":"Operator","value":"="}, + {"type":"LiteralString","value":"DP-1"}, + {"type":"Punctuation","value":","}, + {"type":"LiteralNumberFloat","value":"1378x1024@60"}, + {"type":"Punctuation","value":","}, + {"type":"LiteralNumberFloat","value":"0x0"}, + {"type":"Punctuation","value":","}, + {"type":"LiteralNumberFloat","value":"1"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"KeywordReserved","value":"exec-once"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"hyprpaper"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"\u0026"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"waybar"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"KeywordReserved","value":"exec"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"["}, + {"type":"NameFunction","value":"monitor"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"1"}, + {"type":"Punctuation","value":";"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameFunction","value":"float"}, + {"type":"Punctuation","value":";"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameFunction","value":"move"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"20%"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"30%"}, + {"type":"Punctuation","value":"]"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"kitty"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"KeywordReserved","value":"execr"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"notify-send"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"Hyprland"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"ready"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameNamespace","value":"input"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"{"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"kb_layout"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"us"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"follow_mouse"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"1"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameNamespace","value":"section"}, + {"type":"Punctuation","value":":"}, + {"type":"NameClass","value":"device"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"{"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"name"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"epic-mouse-v1"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"sensitivity"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"-0.5"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"enabled"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordConstant","value":"true"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameNamespace","value":"decoration"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Punctuation","value":"{"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"rounding"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"8"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"col.shadow"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"rgba"}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralNumberHex","value":"1a1a1aee"}, + {"type":"Punctuation","value":")"}, + {"type":"TextWhitespace","value":"\n "}, + {"type":"NameAttribute","value":"col.active_border"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"rgb"}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralNumberHex","value":"33ccff"}, + {"type":"Punctuation","value":")"}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameBuiltin","value":"rgb"}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralNumberHex","value":"ff00cc"}, + {"type":"Punctuation","value":")"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralNumberFloat","value":"45deg"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Punctuation","value":"}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameAttribute","value":"bind"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameVariable","value":"$mainMod"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"Return"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"exec"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameVariable","value":"$terminal"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameAttribute","value":"bindm"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameVariable","value":"$mainMod"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"mouse:272"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"movewindow"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"NameAttribute","value":"windowrulev2"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameFunction","value":"float"}, + {"type":"Punctuation","value":","}, + {"type":"TextWhitespace","value":" "}, + {"type":"NameFunction","value":"class"}, + {"type":"LiteralString","value":":^"}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralString","value":"pavucontrol"}, + {"type":"Punctuation","value":")"}, + {"type":"LiteralString","value":"$"}, + {"type":"TextWhitespace","value":"\n"} +]