-
Notifications
You must be signed in to change notification settings - Fork 853
Expand file tree
/
Copy pathcsharp.py
More file actions
143 lines (118 loc) · 3.99 KB
/
csharp.py
File metadata and controls
143 lines (118 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
from talon import Context, actions, settings
from ...core.described_functions import create_described_insert_between
from ..tags.operators import Operators
ctx = Context()
ctx.matches = r"""
code.language: csharp
"""
operators = Operators(
# code_operators_array
SUBSCRIPT=create_described_insert_between("[", "]"),
# code_operators_assignment
ASSIGNMENT=" = ",
ASSIGNMENT_ADDITION=" += ",
ASSIGNMENT_SUBTRACTION=" -= ",
ASSIGNMENT_DIVISION=" /= ",
ASSIGNMENT_MULTIPLICATION=" *= ",
ASSIGNMENT_MODULO=" %= ",
ASSIGNMENT_BITWISE_AND=" &= ",
ASSIGNMENT_BITWISE_EXCLUSIVE_OR=" ^= ",
ASSIGNMENT_BITWISE_LEFT_SHIFT=" <<= ",
ASSIGNMENT_BITWISE_OR=" |= ",
ASSIGNMENT_BITWISE_RIGHT_SHIFT=" >>= ",
ASSIGNMENT_INCREMENT="++",
# code_operators_bitwise
BITWISE_NOT="~",
BITWISE_AND=" & ",
BITWISE_EXCLUSIVE_OR=" ^ ",
BITWISE_LEFT_SHIFT=" << ",
BITWISE_OR=" | ",
BITWISE_RIGHT_SHIFT=" >> ",
# code_operators_lambda
LAMBDA="=>",
# code_operators_pointer
MATH_ADD=" + ",
MATH_SUBTRACT=" - ",
MATH_MULTIPLY=" * ",
MATH_DIVIDE=" / ",
MATH_MODULO=" % ",
MATH_EQUAL=" == ",
MATH_NOT_EQUAL=" != ",
MATH_OR=" || ",
MATH_AND=" && ",
MATH_NOT="!",
MATH_GREATER_THAN_OR_EQUAL=" >= ",
MATH_GREATER_THAN=" > ",
MATH_LESS_THAN_OR_EQUAL=" <= ",
MATH_LESS_THAN=" < ",
# code_operators_pointer
POINTER_ADDRESS_OF="&",
POINTER_INDIRECTION="*",
POINTER_STRUCTURE_DEREFERENCE="->",
)
@ctx.action_class("user")
class UserActions:
def code_get_operators() -> Operators:
return operators
def code_self():
actions.insert("this")
def code_operator_object_accessor():
actions.insert(".")
def code_insert_null():
actions.insert("null")
def code_insert_is_null():
actions.insert(" == null ")
def code_insert_is_not_null():
actions.insert(" != null")
def code_insert_true():
actions.insert("true")
def code_insert_false():
actions.insert("false")
def code_insert_function(text: str, selection: str):
text += f"({selection or ''})"
actions.user.paste(text)
actions.edit.left()
def code_private_function(text: str):
"""Inserts private function declaration"""
result = "private void {}".format(
actions.user.formatted_text(
text, settings.get("user.code_private_function_formatter")
)
)
actions.user.code_insert_function(result, None)
def code_private_static_function(text: str):
"""Inserts private static function"""
result = "private static void {}".format(
actions.user.formatted_text(
text, settings.get("user.code_private_function_formatter")
)
)
actions.user.code_insert_function(result, None)
def code_protected_function(text: str):
result = "private void {}".format(
actions.user.formatted_text(
text, settings.get("user.code_protected_function_formatter")
)
)
actions.user.code_insert_function(result, None)
def code_protected_static_function(text: str):
result = "protected static void {}".format(
actions.user.formatted_text(
text, settings.get("user.code_protected_function_formatter")
)
)
actions.user.code_insert_function(result, None)
def code_public_function(text: str):
result = "public void {}".format(
actions.user.formatted_text(
text, settings.get("user.code_public_function_formatter")
)
)
actions.user.code_insert_function(result, None)
def code_public_static_function(text: str):
result = "public static void {}".format(
actions.user.formatted_text(
text, settings.get("user.code_public_function_formatter")
)
)
actions.user.code_insert_function(result, None)