Skip to content

Commit fd51cb9

Browse files
Start on preprocessor snippets (talonhub#1986)
Co-authored-by: Nicholas Riley <[email protected]>
1 parent d0f8cab commit fd51cb9

9 files changed

+85
-12
lines changed

core/snippets/snippets/c.snippet

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
language: c
1+
language: c | cpp
22
---
33
name: typedefStructDeclaration
44
phrase: typedef struct
@@ -9,3 +9,10 @@ typedef struct {
99
$1
1010
} $0
1111
---
12+
13+
name: preprocessorPragmaStatement
14+
phrase: pre pragma | pragma
15+
insertionScope: statement
16+
-
17+
#pragma $0
18+
---
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: preprocessorDefineStatement
2+
phrase: pre define | define
3+
insertionScope: statement
4+
---
5+
6+
language: c | cpp
7+
$0.insertionFormatter: ALL_CAPS,SNAKE_CASE
8+
-
9+
#define $0
10+
---
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: preprocessorElseIfStatement
2+
phrase: pre elif
3+
insertionScope: statement
4+
---
5+
6+
language: c | cpp
7+
-
8+
#elif $0
9+
---
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: preprocessorEndIfStatement
2+
phrase: pre end if | end if
3+
insertionScope: statement
4+
---
5+
6+
language: c | cpp
7+
-
8+
#endif $0
9+
---
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: preprocessorErrorStatement
2+
phrase: pre error | error
3+
insertionScope: statement
4+
---
5+
6+
language: c | cpp
7+
-
8+
#error $0
9+
---
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: preprocessorIfDefineStatement
2+
phrase: pre if deaf | if deaf
3+
insertionScope: statement
4+
---
5+
6+
language: c | cpp
7+
$0.insertionFormatter: ALL_CAPS,SNAKE_CASE
8+
-
9+
#ifdef $0
10+
---
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: preprocessorIfStatement
2+
phrase: pre if
3+
insertionScope: statement
4+
---
5+
6+
language: c | cpp
7+
-
8+
#if $0
9+
---
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: preprocessorUndefineStatement
2+
phrase: pre undeaf | undeaf
3+
insertionScope: statement
4+
---
5+
6+
language: c | cpp
7+
$0.insertionFormatter: ALL_CAPS,SNAKE_CASE
8+
-
9+
#undef $0
10+
---

lang/c/c.talon

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,22 @@ state type deaf: insert("typedef ")
3131
state type deaf struct: user.insert_snippet_by_name("typedefStructDeclaration")
3232

3333
# XXX - create a preprocessor tag for these, as they will match cpp, etc
34-
state define: "#define "
35-
state (undefine | undeaf): "#undef "
36-
state if (define | deaf): "#ifdef "
34+
state define: user.insert_snippet_by_name("preprocessorDefineStatement")
35+
state (undefine | undeaf): user.insert_snippet_by_name("preprocessorUndefineStatement")
36+
state if (define | deaf): user.insert_snippet_by_name("preprocessorIfDefineStatement")
3737
[state] define <user.text>$:
38-
"#define {user.formatted_text(text, 'ALL_CAPS,SNAKE_CASE')}"
38+
user.insert_snippet_by_name_with_phrase("preprocessorDefineStatement", text)
3939
[state] (undefine | undeaf) <user.text>$:
40-
"#undef {user.formatted_text(text, 'ALL_CAPS,SNAKE_CASE')}"
40+
user.insert_snippet_by_name_with_phrase("preprocessorUndefineStatement", text)
4141
[state] if (define | deaf) <user.text>$:
42-
"#ifdef {user.formatted_text(text, 'ALL_CAPS,SNAKE_CASE')}"
42+
user.insert_snippet_by_name_with_phrase("preprocessorIfDefineStatement", text)
4343

4444
# XXX - preprocessor instead of pre?
45-
state pre if: "#if "
46-
state error: "#error "
47-
state pre else if: "#elif "
48-
state pre end: "#endif "
49-
state pragma: "#pragma "
45+
state pre if: user.insert_snippet_by_name("preprocessorIfStatement")
46+
state error: user.insert_snippet_by_name("preprocessorErrorStatement")
47+
state pre else if: user.insert_snippet_by_name("preprocessorElseIfStatement")
48+
state pre end: user.insert_snippet_by_name("preprocessorEndIfStatement")
49+
state pragma: user.insert_snippet_by_name("preprocessorPragmaStatement")
5050
state default: "default:\nbreak;"
5151

5252
#control flow

0 commit comments

Comments
 (0)