Skip to content

Commit 7a31396

Browse files
committed
Add pattern-matching for backquoting and splicing
1 parent 1b6eac9 commit 7a31396

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

grammars/emacs-lisp.cson

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,26 @@ repository:
151151
endCaptures:
152152
0: name: "punctuation.section.quoted.expression.end.emacs.lisp"
153153
patterns: [include: "$self"]
154+
},{
155+
name: "meta.backquoted.expression.emacs.lisp"
156+
begin: "(\\`)(\\()"
157+
end: "\\)"
158+
beginCaptures:
159+
1: name: "punctuation.definition.symbol.emacs.lisp"
160+
2: name: "punctuation.section.backquoted.expression.begin.emacs.lisp"
161+
endCaptures:
162+
0: name: "punctuation.section.backquoted.expression.end.emacs.lisp"
163+
patterns: [include: "$self"]
164+
},{
165+
name: "meta.interpolated.expression.emacs.lisp"
166+
begin: "(,@)(\\()"
167+
end: "\\)"
168+
beginCaptures:
169+
1: name: "punctuation.definition.symbol.emacs.lisp"
170+
2: name: "punctuation.section.interpolated.expression.begin.emacs.lisp"
171+
endCaptures:
172+
0: name: "punctuation.section.interpolated.expression.end.emacs.lisp"
173+
patterns: [include: "$self"]
154174
}]
155175

156176

@@ -375,6 +395,12 @@ repository:
375395
captures:
376396
1: name: "punctuation.definition.symbol.emacs.lisp"
377397
2: patterns: [include: "$self"]
398+
},{
399+
# ,@spliced-symbol
400+
name: "constant.other.spliced.symbol.emacs.lisp"
401+
match: "(,@)([-+=*/\\w~!@$%^&:<>{}?]+)"
402+
captures:
403+
1: name: "punctuation.definition.spliced.symbol.emacs.lisp"
378404
}]
379405

380406

tests/emacs.el

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@
1616
#\a
1717

1818

19+
`(1 2 (3 ,(+ 4 5)))
20+
21+
(setq some-list '(2 3))
22+
(cons 1 (append some-list '(4) some-list))
23+
`(1 ,@some-list 4 ,@some-list)
24+
(setq list '(hack foo bar))
25+
(cons 'use
26+
(cons 'the
27+
(cons 'words (append (cdr list) '(as elements)))))
28+
`(use the words ,@(cdr list) as elements)
29+
30+
1931
(defface git-commit-branch-face
2032
'((((class grayscale) (background light) (type tty))
2133
(:foreground "DimGray" :slant italic))

0 commit comments

Comments
 (0)