Carlos Galdino avatar Carlos Galdino committed d7094e4

Add sigil support for Elixir

Comments (0)

Files changed (1)

pygments/lexers/functional.py

             include('strings'),
         ],
         'strings': [
-            (r'"""(?:.|\n)*?"""', String.Doc),
+            (r'(%[A-Ba-z])?"""(?:.|\n)*?"""', String.Doc),
             (r"'''(?:.|\n)*?'''", String.Doc),
             (r'"', String.Double, 'dqs'),
+            (r'%[a-z]\[', String.Double, 'strbracket'),
+            (r'%[a-z]\{', String.Double, 'strbraces'),
+            (r'%[a-z]\(', String.Double, 'strparens'),
+            (r'%[a-z]\<', String.Double, 'strlt'),
             (r"'.*'", String.Single),
             (r'(?<!\w)\?(\\(x\d{1,2}|\h{1,2}(?!\h)\b|0[0-7]{0,2}(?![0-7])\b|'
              r'[^x0MC])|(\\[MC]-)+\w|[^\s\\])', String.Other)
         ],
         'dqs': [
             (r'"', String.Double, "#pop"),
-            include('interpoling'),
-            (r'[^#"]+', String.Double),
+            include('enddoublestr')
         ],
         'interpoling': [
             (r'#{', String.Interpol, 'interpoling_string'),
             include('interpoling'),
             (r'[^#"]+', String.Symbol),
         ],
+        'strbracket': [
+            (r'\][a-z]*', String.Double, "#pop"),
+            include('enddoublestr')
+        ],
+        'strbraces': [
+            (r'\}[a-z]*', String.Double, "#pop"),
+            include('enddoublestr')
+        ],
+        'strparens': [
+            (r'\)[a-z]*', String.Double, "#pop"),
+            include('enddoublestr')
+        ],
+        'strlt': [
+            (r'\>[a-z]*', String.Double, "#pop"),
+            include('enddoublestr')
+        ],
+        'enddoublestr' : [
+            include('interpoling'),
+            (r'[^#"]+', String.Double),
+        ]
     }
 
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.