]> git.lizzy.rs Git - micro.git/commitdiff
Perl syntax improvement (#2359)
authorShura <shura0@yandex.ru>
Fri, 11 Feb 2022 22:13:27 +0000 (01:13 +0300)
committerGitHub <noreply@github.com>
Fri, 11 Feb 2022 22:13:27 +0000 (14:13 -0800)
* Perl syntax improvement

Fixed \" inside strings
Fixed comment coloring
Improved integer, float, strings variable coloring
Added regex coloring

* Update perl.yaml

runtime/syntax/perl.yaml

index 3fcb8703434817caeb24038ecbec47cd21f3dd84..edcc9f056007a59a7b3697d5ec7d3bed3ed387c8 100644 (file)
@@ -1,33 +1,52 @@
 filetype: perl
 
 detect: 
-    filename: "\\.p[lm]$"
+    filename: "\\.pp[lmp]$"
     header: "^#!.*/(env +)?perl( |$)"
 
 rules:
-    - type: "\\b(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\\b|\\b(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\\b|\\b(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\\b|\\b(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\\b|\\b(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\\b"
+    - type: "\\b(accept|alarm|atan2|bin(d|mode)|c(aller|homp|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\\b|\\b(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\\b|\\b(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|say|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\\b|\\b(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\\b|\\b(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\\b"
     - statement: "\\b(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\\b"
 
     - special: "\\-\\>"
     - symbol: "(,|\\.)"
-
-    - identifier:
-        start: "[\\$@%]"
-        end: "\\W"
+    
+    #regexes
+    - identifier.macro: "m?\\/.*?\\/[a-z]*"
+    - identifier.macro: "m?\\|.*?\\|[a-z]*"
+    - identifier.macro: "\\bs/.*?/.*?/[a-z]*"
+    - identifier.macro: "\\bs\\|.*?\\|.*?\\|[a-z]*"
+    
+    - constant.string:
+        start: '"'
+        end: '"'
+        skip: '\\"'
+        rules:
+            - identifier.var: '[\\$@%].[a-zA-Z0-9_]*'
+
+    - constant.string:
+        start: "'"
+        end: "'"
+        skip: "\\\\'"
         rules: []
-
+    
+    - comment:
+        start: "#"
+        end: "$"
+        rules: []
+    
     - constant.string: "\"\\(.*\\)\"|qq?\\|.*\\||qq?\\{.*\\}|qq?\\/.*\\/"
-    - default: "[sm]/.*/"
+    - constant.number: "\\b([0-9]*[.])?[0-9]+"
+    - constant.number: "\\b[0-9]+"
+    - constant.number: "\\b0x[a-f0-9]+"
+    - constant.string.url: "`(.+?)`"
+    - identifier.var: '[\\$@%].[a-zA-Z0-9_]*'
+    
     - preproc:
         start: "(^use| = new)"
         end: ";"
         rules: []
 
-    - comment:
-        start: "#"
-        end: "$"
-        rules: []
-
     - comment:
         start: "^="
         end: "^=cut"