Skip to content

Commit 85e1e31

Browse files
committed
-Experimental function annotation support
1 parent d499f29 commit 85e1e31

File tree

1 file changed

+164
-13
lines changed

1 file changed

+164
-13
lines changed

PythonImproved.tmLanguage

Lines changed: 164 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
44
<dict>
55
<key>bundleUUID</key>
@@ -424,24 +424,14 @@
424424
</dict>
425425
</dict>
426426
<key>end</key>
427-
<string>(\))\s*(?:(\:)|(.*$\n?))</string>
427+
<string>(\:)</string>
428428
<key>endCaptures</key>
429429
<dict>
430430
<key>1</key>
431-
<dict>
432-
<key>name</key>
433-
<string>punctuation.definition.parameters.end.python</string>
434-
</dict>
435-
<key>2</key>
436431
<dict>
437432
<key>name</key>
438433
<string>punctuation.section.function.begin.python</string>
439434
</dict>
440-
<key>3</key>
441-
<dict>
442-
<key>name</key>
443-
<string>invalid.illegal.missing-section-begin.python</string>
444-
</dict>
445435
</dict>
446436
<key>name</key>
447437
<string>meta.function.python</string>
@@ -476,9 +466,13 @@
476466
<key>contentName</key>
477467
<string>meta.function.parameters.python</string>
478468
<key>end</key>
479-
<string>(?=\)\s*\:)</string>
469+
<string>(?=\)\s*(?:\:|-\&gt;))</string>
480470
<key>patterns</key>
481471
<array>
472+
<dict>
473+
<key>include</key>
474+
<string>#annotated_arguments</string>
475+
</dict>
482476
<dict>
483477
<key>include</key>
484478
<string>#keyword_arguments</string>
@@ -506,6 +500,32 @@
506500
</dict>
507501
</array>
508502
</dict>
503+
<dict>
504+
<key>begin</key>
505+
<string>(\))\s*(\-&gt;)</string>
506+
<key>beginCaptures</key>
507+
<dict>
508+
<key>1</key>
509+
<dict>
510+
<key>name</key>
511+
<string>punctuation.definition.parameters.end.python</string>
512+
</dict>
513+
<key>2</key>
514+
<dict>
515+
<key>name</key>
516+
<string>punctuation.separator.annotation.result.python</string>
517+
</dict>
518+
</dict>
519+
<key>end</key>
520+
<string>(?=\:)</string>
521+
<key>patterns</key>
522+
<array>
523+
<dict>
524+
<key>include</key>
525+
<string>$self</string>
526+
</dict>
527+
</array>
528+
</dict>
509529
</array>
510530
</dict>
511531
<dict>
@@ -1200,6 +1220,137 @@
12001220
</array>
12011221
<key>repository</key>
12021222
<dict>
1223+
<key>annotated_arguments</key>
1224+
<dict>
1225+
<key>begin</key>
1226+
<string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(:)|(?=\()</string>
1227+
<key>beginCaptures</key>
1228+
<dict>
1229+
<key>1</key>
1230+
<dict>
1231+
<key>name</key>
1232+
<string>variable.parameter.function.python</string>
1233+
</dict>
1234+
<key>2</key>
1235+
<dict>
1236+
<key>name</key>
1237+
<string>punctuation.separator.annotation.python</string>
1238+
</dict>
1239+
</dict>
1240+
<key>end</key>
1241+
<string>\s*(?:(,)|(?=$\n?|[\)\:]))</string>
1242+
<key>endCaptures</key>
1243+
<dict>
1244+
<key>1</key>
1245+
<dict>
1246+
<key>name</key>
1247+
<string>punctuation.separator.parameters.python</string>
1248+
</dict>
1249+
</dict>
1250+
<key>patterns</key>
1251+
<array>
1252+
<dict>
1253+
<key>include</key>
1254+
<string>#annotated_group</string>
1255+
</dict>
1256+
<dict>
1257+
<key>match</key>
1258+
<string>=</string>
1259+
<key>name</key>
1260+
<string>keyword.operator.assignment.python</string>
1261+
</dict>
1262+
<dict>
1263+
<key>include</key>
1264+
<string>$self</string>
1265+
</dict>
1266+
</array>
1267+
</dict>
1268+
<key>annotated_group</key>
1269+
<dict>
1270+
<key>begin</key>
1271+
<string>(\()</string>
1272+
<key>beginCaptures</key>
1273+
<dict>
1274+
<key>1</key>
1275+
<dict>
1276+
<key>name</key>
1277+
<string>punctuation.definition.parameters-group.begin.python</string>
1278+
</dict>
1279+
</dict>
1280+
<key>end</key>
1281+
<string>(\))</string>
1282+
<key>endCaptures</key>
1283+
<dict>
1284+
<key>1</key>
1285+
<dict>
1286+
<key>name</key>
1287+
<string>punctuation.definition.parameters-group.end.python</string>
1288+
</dict>
1289+
</dict>
1290+
<key>patterns</key>
1291+
<array>
1292+
<dict>
1293+
<key>begin</key>
1294+
<string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(:)</string>
1295+
<key>beginCaptures</key>
1296+
<dict>
1297+
<key>1</key>
1298+
<dict>
1299+
<key>name</key>
1300+
<string>variable.parameter.function.python</string>
1301+
</dict>
1302+
<key>2</key>
1303+
<dict>
1304+
<key>name</key>
1305+
<string>punctuation.separator.annotation.python</string>
1306+
</dict>
1307+
</dict>
1308+
<key>end</key>
1309+
<string>\s*(?:(,)|(?=$\n?|\)))</string>
1310+
<key>endCaptures</key>
1311+
<dict>
1312+
<key>1</key>
1313+
<dict>
1314+
<key>name</key>
1315+
<string>punctuation.separator.parameters.python</string>
1316+
</dict>
1317+
</dict>
1318+
<key>patterns</key>
1319+
<array>
1320+
<dict>
1321+
<key>include</key>
1322+
<string>$self</string>
1323+
</dict>
1324+
</array>
1325+
</dict>
1326+
<dict>
1327+
<key>begin</key>
1328+
<string>\b([a-zA-Z_][a-zA-Z_0-9]*)</string>
1329+
<key>beginCaptures</key>
1330+
<dict>
1331+
<key>1</key>
1332+
<dict>
1333+
<key>name</key>
1334+
<string>variable.parameter.function.python</string>
1335+
</dict>
1336+
</dict>
1337+
<key>end</key>
1338+
<string>\s*(?:(,)|(?=$\n?|\)))</string>
1339+
<key>endCaptures</key>
1340+
<dict>
1341+
<key>1</key>
1342+
<dict>
1343+
<key>name</key>
1344+
<string>punctuation.separator.parameters.python</string>
1345+
</dict>
1346+
</dict>
1347+
</dict>
1348+
<dict>
1349+
<key>include</key>
1350+
<string>#comments</string>
1351+
</dict>
1352+
</array>
1353+
</dict>
12031354
<key>builtin_exceptions</key>
12041355
<dict>
12051356
<key>match</key>

0 commit comments

Comments
 (0)