+2

Bug with more than 99 conditional inserts in a snippet

Roman Komarov 7 years ago 0

Snippets with more than 99 conditional insert work incorrect: all the conditions with more than two digits in they are those to digits.

Here is a snippet to run through ST's console:

view.run_command("insert_snippet", {"contents" : "snippet: $1${1/^(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$)?.*/(?1:=1)(?2:=2)(?3:=3)(?4:=4)(?5:=5)(?6:=6)(?7:=7)(?8:=8)(?9:=9)(?10:=10)(?11:=11)(?12:=12)(?13:=13)(?14:=14)(?15:=15)(?16:=16)(?17:=17)(?18:=18)(?19:=19)(?20:=20)(?21:=21)(?22:=22)(?23:=23)(?24:=24)(?25:=25)(?26:=26)(?27:=27)(?28:=28)(?29:=29)(?30:=30)(?31:=31)(?32:=32)(?33:=33)(?34:=34)(?35:=35)(?36:=36)(?37:=37)(?38:=38)(?39:=39)(?40:=40)(?41:=41)(?42:=42)(?43:=43)(?44:=44)(?45:=45)(?46:=46)(?47:=47)(?48:=48)(?49:=49)(?50:=50)(?51:=51)(?52:=52)(?53:=53)(?54:=54)(?55:=55)(?56:=56)(?57:=57)(?58:=58)(?59:=59)(?60:=60)(?61:=61)(?62:=62)(?63:=63)(?64:=64)(?65:=65)(?66:=66)(?67:=67)(?68:=68)(?69:=69)(?70:=70)(?71:=71)(?72:=72)(?73:=73)(?74:=74)(?75:=75)(?76:=76)(?77:=77)(?78:=78)(?79:=79)(?80:=80)(?81:=81)(?82:=82)(?83:=83)(?84:=84)(?85:=85)(?86:=86)(?87:=87)(?88:=88)(?89:=89)(?90:=90)(?91:=91)(?92:=92)(?93:=93)(?94:=94)(?95:=95)(?96:=96)(?97:=97)(?98:=98)(?99:=99)(?100:=100)(?101:=101)(?102:=102)(?103:=103)(?104:=104)(?105:=105)(?106:=106)(?107:=107)(?108:=108)(?109:=109)(?110:=110)(?111:=111)(?112:=112)/m}"})

Run it, then try to write simple numbers like `1` or `4`, and then write `10` or `11` — you would see how all the conditional inserts starting with those numbers would be placed like this:

10=100=1001=1012=1023=1034=1045=1056=1067=1078=1089=109

That's not something critical, 'cause we could split this tabstop to multiple ones each containing 99 conditions, but there is still a bug.