Helios-Workspace.js 120 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414
  1. define(["amber/boot", "amber_core/Kernel-Objects", "helios/Helios-Core"], function($boot){"use strict";
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
  4. $core.addPackage('Helios-Workspace');
  5. $core.packages["Helios-Workspace"].innerEval = function (expr) { return eval(expr); };
  6. $core.packages["Helios-Workspace"].transport = {"type":"amd","amdNamespace":"helios"};
  7. $core.addClass('HLCodeModel', $globals.Object, ['announcer', 'environment', 'receiver'], 'Helios-Workspace');
  8. $core.addMethod(
  9. $core.method({
  10. selector: "announcer",
  11. protocol: 'accessing',
  12. fn: function (){
  13. var self=this;
  14. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  15. return $core.withContext(function($ctx1) {
  16. //>>excludeEnd("ctx");
  17. var $1,$receiver;
  18. $1=self["@announcer"];
  19. if(($receiver = $1) == null || $receiver.isNil){
  20. self["@announcer"]=$recv($globals.Announcer)._new();
  21. return self["@announcer"];
  22. } else {
  23. return $1;
  24. };
  25. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  26. }, function($ctx1) {$ctx1.fill(self,"announcer",{},$globals.HLCodeModel)});
  27. //>>excludeEnd("ctx");
  28. },
  29. //>>excludeStart("ide", pragmas.excludeIdeData);
  30. args: [],
  31. source: "announcer\x0a\x09^ announcer ifNil: [ announcer := Announcer new ]",
  32. referencedClasses: ["Announcer"],
  33. //>>excludeEnd("ide");
  34. messageSends: ["ifNil:", "new"]
  35. }),
  36. $globals.HLCodeModel);
  37. $core.addMethod(
  38. $core.method({
  39. selector: "browse:",
  40. protocol: 'actions',
  41. fn: function (anObject){
  42. var self=this;
  43. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  44. return $core.withContext(function($ctx1) {
  45. //>>excludeEnd("ctx");
  46. $recv(anObject)._browse();
  47. return self;
  48. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  49. }, function($ctx1) {$ctx1.fill(self,"browse:",{anObject:anObject},$globals.HLCodeModel)});
  50. //>>excludeEnd("ctx");
  51. },
  52. //>>excludeStart("ide", pragmas.excludeIdeData);
  53. args: ["anObject"],
  54. source: "browse: anObject\x0a\x09anObject browse",
  55. referencedClasses: [],
  56. //>>excludeEnd("ide");
  57. messageSends: ["browse"]
  58. }),
  59. $globals.HLCodeModel);
  60. $core.addMethod(
  61. $core.method({
  62. selector: "defaultReceiver",
  63. protocol: 'defaults',
  64. fn: function (){
  65. var self=this;
  66. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  67. return $core.withContext(function($ctx1) {
  68. //>>excludeEnd("ctx");
  69. return $recv(self._environment())._doItReceiver();
  70. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  71. }, function($ctx1) {$ctx1.fill(self,"defaultReceiver",{},$globals.HLCodeModel)});
  72. //>>excludeEnd("ctx");
  73. },
  74. //>>excludeStart("ide", pragmas.excludeIdeData);
  75. args: [],
  76. source: "defaultReceiver\x0a\x09^ self environment doItReceiver",
  77. referencedClasses: [],
  78. //>>excludeEnd("ide");
  79. messageSends: ["doItReceiver", "environment"]
  80. }),
  81. $globals.HLCodeModel);
  82. $core.addMethod(
  83. $core.method({
  84. selector: "doIt:",
  85. protocol: 'actions',
  86. fn: function (aString){
  87. var self=this;
  88. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  89. return $core.withContext(function($ctx1) {
  90. //>>excludeEnd("ctx");
  91. return $recv((function(){
  92. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  93. return $core.withContext(function($ctx2) {
  94. //>>excludeEnd("ctx");
  95. return $recv(self._environment())._evaluate_for_(aString,self._receiver());
  96. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  97. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  98. //>>excludeEnd("ctx");
  99. }))._tryCatch_((function(e){
  100. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  101. return $core.withContext(function($ctx2) {
  102. //>>excludeEnd("ctx");
  103. $recv($globals.ErrorHandler)._handleError_(e);
  104. return nil;
  105. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  106. }, function($ctx2) {$ctx2.fillBlock({e:e},$ctx1,2)});
  107. //>>excludeEnd("ctx");
  108. }));
  109. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  110. }, function($ctx1) {$ctx1.fill(self,"doIt:",{aString:aString},$globals.HLCodeModel)});
  111. //>>excludeEnd("ctx");
  112. },
  113. //>>excludeStart("ide", pragmas.excludeIdeData);
  114. args: ["aString"],
  115. source: "doIt: aString\x0a\x09\x22Evaluate aString in the receiver's `environment`.\x0a\x09\x0a\x09Note: Catch any error and handle it manually, bypassing\x0a\x09boot.js behavior to avoid the browser default action on\x0a\x09ctrl+d/ctrl+p.\x0a\x09\x0a\x09See https://lolg.it/amber/amber/issues/882\x22\x0a\x0a\x09^ [ self environment evaluate: aString for: self receiver ]\x0a\x09\x09tryCatch: [ :e | \x0a\x09\x09\x09ErrorHandler handleError: e.\x0a\x09\x09\x09nil ]",
  116. referencedClasses: ["ErrorHandler"],
  117. //>>excludeEnd("ide");
  118. messageSends: ["tryCatch:", "evaluate:for:", "environment", "receiver", "handleError:"]
  119. }),
  120. $globals.HLCodeModel);
  121. $core.addMethod(
  122. $core.method({
  123. selector: "environment",
  124. protocol: 'accessing',
  125. fn: function (){
  126. var self=this;
  127. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  128. return $core.withContext(function($ctx1) {
  129. //>>excludeEnd("ctx");
  130. var $1,$receiver;
  131. $1=self["@environment"];
  132. if(($receiver = $1) == null || $receiver.isNil){
  133. return $recv($recv($globals.HLManager)._current())._environment();
  134. } else {
  135. return $1;
  136. };
  137. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  138. }, function($ctx1) {$ctx1.fill(self,"environment",{},$globals.HLCodeModel)});
  139. //>>excludeEnd("ctx");
  140. },
  141. //>>excludeStart("ide", pragmas.excludeIdeData);
  142. args: [],
  143. source: "environment\x0a\x09^ environment ifNil: [ HLManager current environment ]",
  144. referencedClasses: ["HLManager"],
  145. //>>excludeEnd("ide");
  146. messageSends: ["ifNil:", "environment", "current"]
  147. }),
  148. $globals.HLCodeModel);
  149. $core.addMethod(
  150. $core.method({
  151. selector: "environment:",
  152. protocol: 'accessing',
  153. fn: function (anEnvironment){
  154. var self=this;
  155. self["@environment"]=anEnvironment;
  156. return self;
  157. },
  158. //>>excludeStart("ide", pragmas.excludeIdeData);
  159. args: ["anEnvironment"],
  160. source: "environment: anEnvironment\x0a\x09environment := anEnvironment",
  161. referencedClasses: [],
  162. //>>excludeEnd("ide");
  163. messageSends: []
  164. }),
  165. $globals.HLCodeModel);
  166. $core.addMethod(
  167. $core.method({
  168. selector: "inspect:",
  169. protocol: 'actions',
  170. fn: function (anObject){
  171. var self=this;
  172. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  173. return $core.withContext(function($ctx1) {
  174. //>>excludeEnd("ctx");
  175. $recv(self._environment())._inspect_(anObject);
  176. return self;
  177. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  178. }, function($ctx1) {$ctx1.fill(self,"inspect:",{anObject:anObject},$globals.HLCodeModel)});
  179. //>>excludeEnd("ctx");
  180. },
  181. //>>excludeStart("ide", pragmas.excludeIdeData);
  182. args: ["anObject"],
  183. source: "inspect: anObject\x0a\x09self environment inspect: anObject",
  184. referencedClasses: [],
  185. //>>excludeEnd("ide");
  186. messageSends: ["inspect:", "environment"]
  187. }),
  188. $globals.HLCodeModel);
  189. $core.addMethod(
  190. $core.method({
  191. selector: "receiver",
  192. protocol: 'accessing',
  193. fn: function (){
  194. var self=this;
  195. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  196. return $core.withContext(function($ctx1) {
  197. //>>excludeEnd("ctx");
  198. var $1,$receiver;
  199. $1=self["@receiver"];
  200. if(($receiver = $1) == null || $receiver.isNil){
  201. self["@receiver"]=self._defaultReceiver();
  202. return self["@receiver"];
  203. } else {
  204. return $1;
  205. };
  206. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  207. }, function($ctx1) {$ctx1.fill(self,"receiver",{},$globals.HLCodeModel)});
  208. //>>excludeEnd("ctx");
  209. },
  210. //>>excludeStart("ide", pragmas.excludeIdeData);
  211. args: [],
  212. source: "receiver\x0a\x09^ receiver ifNil: [ receiver := self defaultReceiver ]",
  213. referencedClasses: [],
  214. //>>excludeEnd("ide");
  215. messageSends: ["ifNil:", "defaultReceiver"]
  216. }),
  217. $globals.HLCodeModel);
  218. $core.addMethod(
  219. $core.method({
  220. selector: "receiver:",
  221. protocol: 'accessing',
  222. fn: function (anObject){
  223. var self=this;
  224. self["@receiver"]=anObject;
  225. return self;
  226. },
  227. //>>excludeStart("ide", pragmas.excludeIdeData);
  228. args: ["anObject"],
  229. source: "receiver: anObject\x0a\x09receiver := anObject",
  230. referencedClasses: [],
  231. //>>excludeEnd("ide");
  232. messageSends: []
  233. }),
  234. $globals.HLCodeModel);
  235. $core.addMethod(
  236. $core.method({
  237. selector: "on:",
  238. protocol: 'actions',
  239. fn: function (anEnvironment){
  240. var self=this;
  241. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  242. return $core.withContext(function($ctx1) {
  243. //>>excludeEnd("ctx");
  244. var $1;
  245. $1=self._new();
  246. $recv($1)._environment_(anEnvironment);
  247. return $recv($1)._yourself();
  248. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  249. }, function($ctx1) {$ctx1.fill(self,"on:",{anEnvironment:anEnvironment},$globals.HLCodeModel.klass)});
  250. //>>excludeEnd("ctx");
  251. },
  252. //>>excludeStart("ide", pragmas.excludeIdeData);
  253. args: ["anEnvironment"],
  254. source: "on: anEnvironment\x0a\x0a\x09^ self new\x0a \x09environment: anEnvironment;\x0a yourself",
  255. referencedClasses: [],
  256. //>>excludeEnd("ide");
  257. messageSends: ["environment:", "new", "yourself"]
  258. }),
  259. $globals.HLCodeModel.klass);
  260. $core.addClass('HLCodeWidget', $globals.HLWidget, ['model', 'wrapper', 'code', 'editor', 'state'], 'Helios-Workspace');
  261. $core.addMethod(
  262. $core.method({
  263. selector: "announcer",
  264. protocol: 'accessing',
  265. fn: function (){
  266. var self=this;
  267. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  268. return $core.withContext(function($ctx1) {
  269. //>>excludeEnd("ctx");
  270. return $recv(self._model())._announcer();
  271. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  272. }, function($ctx1) {$ctx1.fill(self,"announcer",{},$globals.HLCodeWidget)});
  273. //>>excludeEnd("ctx");
  274. },
  275. //>>excludeStart("ide", pragmas.excludeIdeData);
  276. args: [],
  277. source: "announcer\x0a\x09^ self model announcer",
  278. referencedClasses: [],
  279. //>>excludeEnd("ide");
  280. messageSends: ["announcer", "model"]
  281. }),
  282. $globals.HLCodeWidget);
  283. $core.addMethod(
  284. $core.method({
  285. selector: "browseIt",
  286. protocol: 'actions',
  287. fn: function (){
  288. var self=this;
  289. var result;
  290. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  291. return $core.withContext(function($ctx1) {
  292. //>>excludeEnd("ctx");
  293. var $early={};
  294. try {
  295. result=$recv((function(){
  296. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  297. return $core.withContext(function($ctx2) {
  298. //>>excludeEnd("ctx");
  299. return self._doIt();
  300. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  301. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  302. //>>excludeEnd("ctx");
  303. }))._on_do_($globals.Error,(function(exception){
  304. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  305. return $core.withContext(function($ctx2) {
  306. //>>excludeEnd("ctx");
  307. throw $early=[$recv($globals.ErrorHandler)._handleError_(exception)];
  308. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  309. }, function($ctx2) {$ctx2.fillBlock({exception:exception},$ctx1,2)});
  310. //>>excludeEnd("ctx");
  311. }));
  312. $recv(self._model())._browse_(result);
  313. return self;
  314. }
  315. catch(e) {if(e===$early)return e[0]; throw e}
  316. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  317. }, function($ctx1) {$ctx1.fill(self,"browseIt",{result:result},$globals.HLCodeWidget)});
  318. //>>excludeEnd("ctx");
  319. },
  320. //>>excludeStart("ide", pragmas.excludeIdeData);
  321. args: [],
  322. source: "browseIt\x0a\x09| result |\x0a\x09\x0a\x09result := [ self doIt ] on: Error do: [ :exception | \x0a\x09\x09^ ErrorHandler handleError: exception ].\x0a\x09\x09\x0a\x09self model browse: result",
  323. referencedClasses: ["Error", "ErrorHandler"],
  324. //>>excludeEnd("ide");
  325. messageSends: ["on:do:", "doIt", "handleError:", "browse:", "model"]
  326. }),
  327. $globals.HLCodeWidget);
  328. $core.addMethod(
  329. $core.method({
  330. selector: "canHaveFocus",
  331. protocol: 'testing',
  332. fn: function (){
  333. var self=this;
  334. return true;
  335. },
  336. //>>excludeStart("ide", pragmas.excludeIdeData);
  337. args: [],
  338. source: "canHaveFocus\x0a\x09^ true",
  339. referencedClasses: [],
  340. //>>excludeEnd("ide");
  341. messageSends: []
  342. }),
  343. $globals.HLCodeWidget);
  344. $core.addMethod(
  345. $core.method({
  346. selector: "clear",
  347. protocol: 'actions',
  348. fn: function (){
  349. var self=this;
  350. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  351. return $core.withContext(function($ctx1) {
  352. //>>excludeEnd("ctx");
  353. self._contents_("");
  354. return self;
  355. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  356. }, function($ctx1) {$ctx1.fill(self,"clear",{},$globals.HLCodeWidget)});
  357. //>>excludeEnd("ctx");
  358. },
  359. //>>excludeStart("ide", pragmas.excludeIdeData);
  360. args: [],
  361. source: "clear\x0a\x09self contents: ''",
  362. referencedClasses: [],
  363. //>>excludeEnd("ide");
  364. messageSends: ["contents:"]
  365. }),
  366. $globals.HLCodeWidget);
  367. $core.addMethod(
  368. $core.method({
  369. selector: "configureEditor",
  370. protocol: 'actions',
  371. fn: function (){
  372. var self=this;
  373. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  374. return $core.withContext(function($ctx1) {
  375. //>>excludeEnd("ctx");
  376. var $1,$2,$3;
  377. $1=self._editor();
  378. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  379. $ctx1.sendIdx["editor"]=1;
  380. //>>excludeEnd("ctx");
  381. $recv($1)._at_put_("amberCodeWidget",self);
  382. $2=self._editor();
  383. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  384. $ctx1.sendIdx["editor"]=2;
  385. //>>excludeEnd("ctx");
  386. $recv($2)._on_do_("change",(function(){
  387. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  388. return $core.withContext(function($ctx2) {
  389. //>>excludeEnd("ctx");
  390. return self._onChange();
  391. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  392. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  393. //>>excludeEnd("ctx");
  394. }));
  395. $recv($recv(self._wrapper())._asJQuery())._on_in_do_("mousedown",".CodeMirror pre",(function(event){
  396. var position,node;
  397. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  398. return $core.withContext(function($ctx2) {
  399. //>>excludeEnd("ctx");
  400. $3=$recv(event)._at_("ctrlKey");
  401. if($core.assert($3)){
  402. position=$recv(self._editor())._coordsChar_($globals.HashedCollection._newFromPairs_(["left",$recv(event)._clientX(),"top",$recv(event)._clientY()]));
  403. position;
  404. self._onCtrlClickAt_($recv($recv($recv(position)._line()).__at($recv(position)._ch())).__plus((1)));
  405. return $recv(event)._preventDefault();
  406. };
  407. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  408. }, function($ctx2) {$ctx2.fillBlock({event:event,position:position,node:node},$ctx1,2)});
  409. //>>excludeEnd("ctx");
  410. }));
  411. return self;
  412. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  413. }, function($ctx1) {$ctx1.fill(self,"configureEditor",{},$globals.HLCodeWidget)});
  414. //>>excludeEnd("ctx");
  415. },
  416. //>>excludeStart("ide", pragmas.excludeIdeData);
  417. args: [],
  418. source: "configureEditor\x0a\x09self editor at: 'amberCodeWidget' put: self.\x0a\x09self editor on: 'change' do: [ self onChange ].\x0a\x0a\x09self wrapper asJQuery on: 'mousedown' in: '.CodeMirror pre' do: [ :event | | position node |\x0a\x09\x09(event at: 'ctrlKey') ifTrue: [\x0a\x09\x09\x09position := self editor coordsChar: #{ \x0a\x09\x09\x09\x09'left' -> event clientX.\x0a\x09\x09\x09\x09'top' -> event clientY\x0a\x09\x09\x09}.\x0a\x09\x09\x09self onCtrlClickAt: (position line @ position ch) + 1.\x0a\x09\x09\x09event preventDefault ] ]",
  419. referencedClasses: [],
  420. //>>excludeEnd("ide");
  421. messageSends: ["at:put:", "editor", "on:do:", "onChange", "on:in:do:", "asJQuery", "wrapper", "ifTrue:", "at:", "coordsChar:", "clientX", "clientY", "onCtrlClickAt:", "+", "@", "line", "ch", "preventDefault"]
  422. }),
  423. $globals.HLCodeWidget);
  424. $core.addMethod(
  425. $core.method({
  426. selector: "contents",
  427. protocol: 'accessing',
  428. fn: function (){
  429. var self=this;
  430. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  431. return $core.withContext(function($ctx1) {
  432. //>>excludeEnd("ctx");
  433. return $recv(self["@editor"])._getValue();
  434. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  435. }, function($ctx1) {$ctx1.fill(self,"contents",{},$globals.HLCodeWidget)});
  436. //>>excludeEnd("ctx");
  437. },
  438. //>>excludeStart("ide", pragmas.excludeIdeData);
  439. args: [],
  440. source: "contents\x0a\x09^ editor getValue",
  441. referencedClasses: [],
  442. //>>excludeEnd("ide");
  443. messageSends: ["getValue"]
  444. }),
  445. $globals.HLCodeWidget);
  446. $core.addMethod(
  447. $core.method({
  448. selector: "contents:",
  449. protocol: 'accessing',
  450. fn: function (aString){
  451. var self=this;
  452. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  453. return $core.withContext(function($ctx1) {
  454. //>>excludeEnd("ctx");
  455. var $1,$receiver;
  456. $recv(self["@editor"])._setValue_(aString);
  457. $1=self["@state"];
  458. if(($receiver = $1) == null || $receiver.isNil){
  459. $1;
  460. } else {
  461. self._updateState();
  462. };
  463. return self;
  464. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  465. }, function($ctx1) {$ctx1.fill(self,"contents:",{aString:aString},$globals.HLCodeWidget)});
  466. //>>excludeEnd("ctx");
  467. },
  468. //>>excludeStart("ide", pragmas.excludeIdeData);
  469. args: ["aString"],
  470. source: "contents: aString\x0a\x09editor setValue: aString.\x0a\x09state ifNotNil: [ self updateState ]",
  471. referencedClasses: [],
  472. //>>excludeEnd("ide");
  473. messageSends: ["setValue:", "ifNotNil:", "updateState"]
  474. }),
  475. $globals.HLCodeWidget);
  476. $core.addMethod(
  477. $core.method({
  478. selector: "currentLine",
  479. protocol: 'accessing',
  480. fn: function (){
  481. var self=this;
  482. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  483. return $core.withContext(function($ctx1) {
  484. //>>excludeEnd("ctx");
  485. return $recv(self["@editor"])._getLine_($recv($recv(self["@editor"])._getCursor())._line());
  486. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  487. }, function($ctx1) {$ctx1.fill(self,"currentLine",{},$globals.HLCodeWidget)});
  488. //>>excludeEnd("ctx");
  489. },
  490. //>>excludeStart("ide", pragmas.excludeIdeData);
  491. args: [],
  492. source: "currentLine\x0a ^editor getLine: (editor getCursor line)",
  493. referencedClasses: [],
  494. //>>excludeEnd("ide");
  495. messageSends: ["getLine:", "line", "getCursor"]
  496. }),
  497. $globals.HLCodeWidget);
  498. $core.addMethod(
  499. $core.method({
  500. selector: "currentLineOrSelection",
  501. protocol: 'accessing',
  502. fn: function (){
  503. var self=this;
  504. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  505. return $core.withContext(function($ctx1) {
  506. //>>excludeEnd("ctx");
  507. var $1;
  508. $1=$recv(self["@editor"])._somethingSelected();
  509. if($core.assert($1)){
  510. return self._selection();
  511. } else {
  512. return self._currentLine();
  513. };
  514. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  515. }, function($ctx1) {$ctx1.fill(self,"currentLineOrSelection",{},$globals.HLCodeWidget)});
  516. //>>excludeEnd("ctx");
  517. },
  518. //>>excludeStart("ide", pragmas.excludeIdeData);
  519. args: [],
  520. source: "currentLineOrSelection\x0a ^editor somethingSelected\x0a\x09\x09ifFalse: [ self currentLine ]\x0a\x09\x09ifTrue: [ self selection ]",
  521. referencedClasses: [],
  522. //>>excludeEnd("ide");
  523. messageSends: ["ifFalse:ifTrue:", "somethingSelected", "currentLine", "selection"]
  524. }),
  525. $globals.HLCodeWidget);
  526. $core.addMethod(
  527. $core.method({
  528. selector: "doIt",
  529. protocol: 'actions',
  530. fn: function (){
  531. var self=this;
  532. var result;
  533. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  534. return $core.withContext(function($ctx1) {
  535. //>>excludeEnd("ctx");
  536. var $1;
  537. $1=self._model();
  538. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  539. $ctx1.sendIdx["model"]=1;
  540. //>>excludeEnd("ctx");
  541. result=$recv($1)._doIt_(self._currentLineOrSelection());
  542. $recv($recv(self._model())._announcer())._announce_($recv($globals.HLDoItExecuted)._on_(self["@model"]));
  543. return result;
  544. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  545. }, function($ctx1) {$ctx1.fill(self,"doIt",{result:result},$globals.HLCodeWidget)});
  546. //>>excludeEnd("ctx");
  547. },
  548. //>>excludeStart("ide", pragmas.excludeIdeData);
  549. args: [],
  550. source: "doIt\x0a\x09| result |\x0a\x0a\x09result := self model doIt: self currentLineOrSelection.\x0a\x09self model announcer announce: (HLDoItExecuted on: model).\x0a\x0a\x09^ result",
  551. referencedClasses: ["HLDoItExecuted"],
  552. //>>excludeEnd("ide");
  553. messageSends: ["doIt:", "model", "currentLineOrSelection", "announce:", "announcer", "on:"]
  554. }),
  555. $globals.HLCodeWidget);
  556. $core.addMethod(
  557. $core.method({
  558. selector: "editor",
  559. protocol: 'actions',
  560. fn: function (){
  561. var self=this;
  562. return self["@editor"];
  563. },
  564. //>>excludeStart("ide", pragmas.excludeIdeData);
  565. args: [],
  566. source: "editor\x0a\x09^ editor",
  567. referencedClasses: [],
  568. //>>excludeEnd("ide");
  569. messageSends: []
  570. }),
  571. $globals.HLCodeWidget);
  572. $core.addMethod(
  573. $core.method({
  574. selector: "editorOptions",
  575. protocol: 'accessing',
  576. fn: function (){
  577. var self=this;
  578. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  579. return $core.withContext(function($ctx1) {
  580. //>>excludeEnd("ctx");
  581. var $1;
  582. $1="helios.editorTheme"._settingValueIfAbsent_("default");
  583. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  584. $ctx1.sendIdx["settingValueIfAbsent:"]=1;
  585. //>>excludeEnd("ctx");
  586. return $globals.HashedCollection._newFromPairs_(["theme",$1,"mode","text/x-stsrc","inputStyle","contenteditable","lineNumbers",true,"enterMode","flat","indentWithTabs",true,"indentUnit",(4),"matchBrackets",true,"electricChars",false,"keyMap","Amber","extraKeys",$recv($globals.HashedCollection)._with_($recv("helios.completionKey"._settingValueIfAbsent_("Shift-Space")).__minus_gt("autocomplete"))]);
  587. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  588. }, function($ctx1) {$ctx1.fill(self,"editorOptions",{},$globals.HLCodeWidget)});
  589. //>>excludeEnd("ctx");
  590. },
  591. //>>excludeStart("ide", pragmas.excludeIdeData);
  592. args: [],
  593. source: "editorOptions\x0a\x09^ #{\x0a\x09\x09'theme' -> ('helios.editorTheme' settingValueIfAbsent: 'default').\x0a\x09\x09'mode' -> 'text/x-stsrc'.\x0a\x09\x09'inputStyle' -> 'contenteditable'.\x0a 'lineNumbers' -> true.\x0a 'enterMode' -> 'flat'.\x0a 'indentWithTabs' -> true.\x0a\x09\x09'indentUnit' -> 4.\x0a 'matchBrackets' -> true.\x0a 'electricChars' -> false.\x0a\x09\x09'keyMap' -> 'Amber'.\x0a\x09\x09'extraKeys' -> (HashedCollection with: ('helios.completionKey' settingValueIfAbsent: 'Shift-Space') -> 'autocomplete')\x0a\x09}",
  594. referencedClasses: ["HashedCollection"],
  595. //>>excludeEnd("ide");
  596. messageSends: ["settingValueIfAbsent:", "with:", "->"]
  597. }),
  598. $globals.HLCodeWidget);
  599. $core.addMethod(
  600. $core.method({
  601. selector: "focus",
  602. protocol: 'actions',
  603. fn: function (){
  604. var self=this;
  605. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  606. return $core.withContext(function($ctx1) {
  607. //>>excludeEnd("ctx");
  608. $recv(self["@editor"])._focus();
  609. return self;
  610. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  611. }, function($ctx1) {$ctx1.fill(self,"focus",{},$globals.HLCodeWidget)});
  612. //>>excludeEnd("ctx");
  613. },
  614. //>>excludeStart("ide", pragmas.excludeIdeData);
  615. args: [],
  616. source: "focus\x0a\x09editor focus",
  617. referencedClasses: [],
  618. //>>excludeEnd("ide");
  619. messageSends: ["focus"]
  620. }),
  621. $globals.HLCodeWidget);
  622. $core.addMethod(
  623. $core.method({
  624. selector: "hasFocus",
  625. protocol: 'testing',
  626. fn: function (){
  627. var self=this;
  628. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  629. return $core.withContext(function($ctx1) {
  630. //>>excludeEnd("ctx");
  631. return $recv($recv(self["@code"])._asJQuery())._is_(":active");
  632. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  633. }, function($ctx1) {$ctx1.fill(self,"hasFocus",{},$globals.HLCodeWidget)});
  634. //>>excludeEnd("ctx");
  635. },
  636. //>>excludeStart("ide", pragmas.excludeIdeData);
  637. args: [],
  638. source: "hasFocus\x0a\x09^ code asJQuery is: ':active'",
  639. referencedClasses: [],
  640. //>>excludeEnd("ide");
  641. messageSends: ["is:", "asJQuery"]
  642. }),
  643. $globals.HLCodeWidget);
  644. $core.addMethod(
  645. $core.method({
  646. selector: "hasModification",
  647. protocol: 'testing',
  648. fn: function (){
  649. var self=this;
  650. return false;
  651. },
  652. //>>excludeStart("ide", pragmas.excludeIdeData);
  653. args: [],
  654. source: "hasModification\x0a\x09^ false",
  655. referencedClasses: [],
  656. //>>excludeEnd("ide");
  657. messageSends: []
  658. }),
  659. $globals.HLCodeWidget);
  660. $core.addMethod(
  661. $core.method({
  662. selector: "inspectIt",
  663. protocol: 'actions',
  664. fn: function (){
  665. var self=this;
  666. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  667. return $core.withContext(function($ctx1) {
  668. //>>excludeEnd("ctx");
  669. $recv(self._model())._inspect_(self._doIt());
  670. return self;
  671. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  672. }, function($ctx1) {$ctx1.fill(self,"inspectIt",{},$globals.HLCodeWidget)});
  673. //>>excludeEnd("ctx");
  674. },
  675. //>>excludeStart("ide", pragmas.excludeIdeData);
  676. args: [],
  677. source: "inspectIt\x0a\x09self model inspect: self doIt",
  678. referencedClasses: [],
  679. //>>excludeEnd("ide");
  680. messageSends: ["inspect:", "model", "doIt"]
  681. }),
  682. $globals.HLCodeWidget);
  683. $core.addMethod(
  684. $core.method({
  685. selector: "messageHintFor:token:",
  686. protocol: 'hints',
  687. fn: function (anEditor,aToken){
  688. var self=this;
  689. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  690. return $core.withContext(function($ctx1) {
  691. //>>excludeEnd("ctx");
  692. var $1;
  693. return $recv($recv($recv($recv($recv($globals.Smalltalk)._core())._allSelectors())._asArray())._select_((function(each){
  694. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  695. return $core.withContext(function($ctx2) {
  696. //>>excludeEnd("ctx");
  697. $1=$recv(aToken)._string();
  698. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  699. $ctx2.sendIdx["string"]=1;
  700. //>>excludeEnd("ctx");
  701. return $recv(each)._includesSubString_($1);
  702. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  703. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  704. //>>excludeEnd("ctx");
  705. })))._reject_((function(each){
  706. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  707. return $core.withContext(function($ctx2) {
  708. //>>excludeEnd("ctx");
  709. return $recv(each).__eq($recv(aToken)._string());
  710. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  711. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
  712. //>>excludeEnd("ctx");
  713. }));
  714. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  715. }, function($ctx1) {$ctx1.fill(self,"messageHintFor:token:",{anEditor:anEditor,aToken:aToken},$globals.HLCodeWidget)});
  716. //>>excludeEnd("ctx");
  717. },
  718. //>>excludeStart("ide", pragmas.excludeIdeData);
  719. args: ["anEditor", "aToken"],
  720. source: "messageHintFor: anEditor token: aToken\x0a\x09^ (Smalltalk core allSelectors asArray \x0a\x09\x09select: [ :each | each includesSubString: aToken string ])\x0a\x09\x09reject: [ :each | each = aToken string ]",
  721. referencedClasses: ["Smalltalk"],
  722. //>>excludeEnd("ide");
  723. messageSends: ["reject:", "select:", "asArray", "allSelectors", "core", "includesSubString:", "string", "="]
  724. }),
  725. $globals.HLCodeWidget);
  726. $core.addMethod(
  727. $core.method({
  728. selector: "model",
  729. protocol: 'accessing',
  730. fn: function (){
  731. var self=this;
  732. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  733. return $core.withContext(function($ctx1) {
  734. //>>excludeEnd("ctx");
  735. var $1,$receiver;
  736. $1=self["@model"];
  737. if(($receiver = $1) == null || $receiver.isNil){
  738. self["@model"]=$recv($globals.HLCodeModel)._new();
  739. return self["@model"];
  740. } else {
  741. return $1;
  742. };
  743. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  744. }, function($ctx1) {$ctx1.fill(self,"model",{},$globals.HLCodeWidget)});
  745. //>>excludeEnd("ctx");
  746. },
  747. //>>excludeStart("ide", pragmas.excludeIdeData);
  748. args: [],
  749. source: "model\x0a\x09^ model ifNil: [ model := HLCodeModel new ]",
  750. referencedClasses: ["HLCodeModel"],
  751. //>>excludeEnd("ide");
  752. messageSends: ["ifNil:", "new"]
  753. }),
  754. $globals.HLCodeWidget);
  755. $core.addMethod(
  756. $core.method({
  757. selector: "model:",
  758. protocol: 'accessing',
  759. fn: function (aModel){
  760. var self=this;
  761. self["@model"]=aModel;
  762. return self;
  763. },
  764. //>>excludeStart("ide", pragmas.excludeIdeData);
  765. args: ["aModel"],
  766. source: "model: aModel\x0a\x09model := aModel",
  767. referencedClasses: [],
  768. //>>excludeEnd("ide");
  769. messageSends: []
  770. }),
  771. $globals.HLCodeWidget);
  772. $core.addMethod(
  773. $core.method({
  774. selector: "navigateTo:",
  775. protocol: 'actions',
  776. fn: function (aString){
  777. var self=this;
  778. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  779. return $core.withContext(function($ctx1) {
  780. //>>excludeEnd("ctx");
  781. $recv($globals.Finder)._findString_(aString);
  782. return self;
  783. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  784. }, function($ctx1) {$ctx1.fill(self,"navigateTo:",{aString:aString},$globals.HLCodeWidget)});
  785. //>>excludeEnd("ctx");
  786. },
  787. //>>excludeStart("ide", pragmas.excludeIdeData);
  788. args: ["aString"],
  789. source: "navigateTo: aString\x0a\x09Finder findString: aString",
  790. referencedClasses: ["Finder"],
  791. //>>excludeEnd("ide");
  792. messageSends: ["findString:"]
  793. }),
  794. $globals.HLCodeWidget);
  795. $core.addMethod(
  796. $core.method({
  797. selector: "navigateToReference:",
  798. protocol: 'actions',
  799. fn: function (aString){
  800. var self=this;
  801. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  802. return $core.withContext(function($ctx1) {
  803. //>>excludeEnd("ctx");
  804. $recv($recv($globals.HLReferences)._openAsTab())._search_(aString);
  805. return self;
  806. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  807. }, function($ctx1) {$ctx1.fill(self,"navigateToReference:",{aString:aString},$globals.HLCodeWidget)});
  808. //>>excludeEnd("ctx");
  809. },
  810. //>>excludeStart("ide", pragmas.excludeIdeData);
  811. args: ["aString"],
  812. source: "navigateToReference: aString\x0a\x09(HLReferences openAsTab)\x0a\x09\x09search: aString",
  813. referencedClasses: ["HLReferences"],
  814. //>>excludeEnd("ide");
  815. messageSends: ["search:", "openAsTab"]
  816. }),
  817. $globals.HLCodeWidget);
  818. $core.addMethod(
  819. $core.method({
  820. selector: "onChange",
  821. protocol: 'reactions',
  822. fn: function (){
  823. var self=this;
  824. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  825. return $core.withContext(function($ctx1) {
  826. //>>excludeEnd("ctx");
  827. self._updateState();
  828. return self;
  829. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  830. }, function($ctx1) {$ctx1.fill(self,"onChange",{},$globals.HLCodeWidget)});
  831. //>>excludeEnd("ctx");
  832. },
  833. //>>excludeStart("ide", pragmas.excludeIdeData);
  834. args: [],
  835. source: "onChange\x0a\x09self updateState",
  836. referencedClasses: [],
  837. //>>excludeEnd("ide");
  838. messageSends: ["updateState"]
  839. }),
  840. $globals.HLCodeWidget);
  841. $core.addMethod(
  842. $core.method({
  843. selector: "onCtrlClickAt:",
  844. protocol: 'reactions',
  845. fn: function (aPoint){
  846. var self=this;
  847. var ast,node;
  848. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  849. return $core.withContext(function($ctx1) {
  850. //>>excludeEnd("ctx");
  851. var $early={};
  852. try {
  853. ast=$recv((function(){
  854. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  855. return $core.withContext(function($ctx2) {
  856. //>>excludeEnd("ctx");
  857. return $recv($globals.Smalltalk)._parse_($recv(self._editor())._getValue());
  858. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  859. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  860. //>>excludeEnd("ctx");
  861. }))._on_do_($globals.Error,(function(error){
  862. throw $early=[self];
  863. }));
  864. node=$recv(ast)._navigationNodeAt_ifAbsent_(aPoint,(function(){
  865. throw $early=[nil];
  866. }));
  867. self._navigateTo_($recv(node)._navigationLink());
  868. return self;
  869. }
  870. catch(e) {if(e===$early)return e[0]; throw e}
  871. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  872. }, function($ctx1) {$ctx1.fill(self,"onCtrlClickAt:",{aPoint:aPoint,ast:ast,node:node},$globals.HLCodeWidget)});
  873. //>>excludeEnd("ctx");
  874. },
  875. //>>excludeStart("ide", pragmas.excludeIdeData);
  876. args: ["aPoint"],
  877. source: "onCtrlClickAt: aPoint\x0a\x09| ast node |\x0a\x09\x0a\x09ast := [ Smalltalk parse: self editor getValue ] \x0a\x09\x09on: Error \x0a\x09\x09do: [ :error | ^ self ].\x0a\x09\x0a\x09node := ast \x0a\x09\x09navigationNodeAt: aPoint \x0a\x09\x09ifAbsent: [ ^ nil ].\x0a\x09\x09\x0a\x09self navigateTo: node navigationLink",
  878. referencedClasses: ["Smalltalk", "Error"],
  879. //>>excludeEnd("ide");
  880. messageSends: ["on:do:", "parse:", "getValue", "editor", "navigationNodeAt:ifAbsent:", "navigateTo:", "navigationLink"]
  881. }),
  882. $globals.HLCodeWidget);
  883. $core.addMethod(
  884. $core.method({
  885. selector: "onInspectIt",
  886. protocol: 'reactions',
  887. fn: function (){
  888. var self=this;
  889. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  890. return $core.withContext(function($ctx1) {
  891. //>>excludeEnd("ctx");
  892. self._inspectIt();
  893. return self;
  894. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  895. }, function($ctx1) {$ctx1.fill(self,"onInspectIt",{},$globals.HLCodeWidget)});
  896. //>>excludeEnd("ctx");
  897. },
  898. //>>excludeStart("ide", pragmas.excludeIdeData);
  899. args: [],
  900. source: "onInspectIt\x0a\x0a\x09self inspectIt",
  901. referencedClasses: [],
  902. //>>excludeEnd("ide");
  903. messageSends: ["inspectIt"]
  904. }),
  905. $globals.HLCodeWidget);
  906. $core.addMethod(
  907. $core.method({
  908. selector: "onPrintIt",
  909. protocol: 'reactions',
  910. fn: function (){
  911. var self=this;
  912. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  913. return $core.withContext(function($ctx1) {
  914. //>>excludeEnd("ctx");
  915. self._printIt();
  916. return self;
  917. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  918. }, function($ctx1) {$ctx1.fill(self,"onPrintIt",{},$globals.HLCodeWidget)});
  919. //>>excludeEnd("ctx");
  920. },
  921. //>>excludeStart("ide", pragmas.excludeIdeData);
  922. args: [],
  923. source: "onPrintIt\x0a\x0a\x09self printIt",
  924. referencedClasses: [],
  925. //>>excludeEnd("ide");
  926. messageSends: ["printIt"]
  927. }),
  928. $globals.HLCodeWidget);
  929. $core.addMethod(
  930. $core.method({
  931. selector: "onSaveIt",
  932. protocol: 'reactions',
  933. fn: function (){
  934. var self=this;
  935. return self;
  936. },
  937. //>>excludeStart("ide", pragmas.excludeIdeData);
  938. args: [],
  939. source: "onSaveIt\x0a\x09\x22I do not do anything\x22",
  940. referencedClasses: [],
  941. //>>excludeEnd("ide");
  942. messageSends: []
  943. }),
  944. $globals.HLCodeWidget);
  945. $core.addMethod(
  946. $core.method({
  947. selector: "print:",
  948. protocol: 'actions',
  949. fn: function (aString){
  950. var self=this;
  951. var start,stop,currentLine;
  952. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  953. return $core.withContext(function($ctx1) {
  954. //>>excludeEnd("ctx");
  955. var $1,$2,$4,$3,$5,$6,$7,$8,$9,$10,$12,$11;
  956. $1=$recv(self["@editor"])._getCursor_(false);
  957. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  958. $ctx1.sendIdx["getCursor:"]=1;
  959. //>>excludeEnd("ctx");
  960. currentLine=$recv($1)._line();
  961. start=$recv($globals.HashedCollection)._new();
  962. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  963. $ctx1.sendIdx["new"]=1;
  964. //>>excludeEnd("ctx");
  965. $recv(start)._at_put_("line",currentLine);
  966. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  967. $ctx1.sendIdx["at:put:"]=1;
  968. //>>excludeEnd("ctx");
  969. $2=start;
  970. $4=$recv(self["@editor"])._getCursor_(false);
  971. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  972. $ctx1.sendIdx["getCursor:"]=2;
  973. //>>excludeEnd("ctx");
  974. $3=$recv($4)._ch();
  975. $recv($2)._at_put_("ch",$3);
  976. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  977. $ctx1.sendIdx["at:put:"]=2;
  978. //>>excludeEnd("ctx");
  979. $5=$recv(self["@editor"])._getSelection();
  980. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  981. $ctx1.sendIdx["getSelection"]=1;
  982. //>>excludeEnd("ctx");
  983. $recv($5)._ifEmpty_((function(){
  984. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  985. return $core.withContext(function($ctx2) {
  986. //>>excludeEnd("ctx");
  987. $6=start;
  988. $7=$recv($recv(self["@editor"])._getLine_(currentLine))._size();
  989. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  990. $ctx2.sendIdx["size"]=1;
  991. //>>excludeEnd("ctx");
  992. $recv($6)._at_put_("ch",$7);
  993. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  994. $ctx2.sendIdx["at:put:"]=3;
  995. //>>excludeEnd("ctx");
  996. return $recv(self["@editor"])._setSelection_end_($globals.HashedCollection._newFromPairs_(["line",currentLine,"ch",(0)]),start);
  997. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  998. $ctx2.sendIdx["setSelection:end:"]=1;
  999. //>>excludeEnd("ctx");
  1000. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1001. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1002. //>>excludeEnd("ctx");
  1003. }));
  1004. stop=$recv($globals.HashedCollection)._new();
  1005. $recv(stop)._at_put_("line",currentLine);
  1006. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1007. $ctx1.sendIdx["at:put:"]=4;
  1008. //>>excludeEnd("ctx");
  1009. $8=stop;
  1010. $9=$recv($recv($recv(start)._at_("ch")).__plus($recv(aString)._size())).__plus((2));
  1011. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1012. $ctx1.sendIdx["+"]=1;
  1013. //>>excludeEnd("ctx");
  1014. $recv($8)._at_put_("ch",$9);
  1015. $10=self["@editor"];
  1016. $12=$recv($recv($recv(self["@editor"])._getSelection()).__comma(" ")).__comma(aString);
  1017. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1018. $ctx1.sendIdx[","]=2;
  1019. //>>excludeEnd("ctx");
  1020. $11=$recv($12).__comma(" ");
  1021. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1022. $ctx1.sendIdx[","]=1;
  1023. //>>excludeEnd("ctx");
  1024. $recv($10)._replaceSelection_($11);
  1025. $recv(self["@editor"])._setCursor_($recv(self["@editor"])._getCursor_(true));
  1026. $recv(self["@editor"])._setSelection_end_(stop,start);
  1027. return self;
  1028. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1029. }, function($ctx1) {$ctx1.fill(self,"print:",{aString:aString,start:start,stop:stop,currentLine:currentLine},$globals.HLCodeWidget)});
  1030. //>>excludeEnd("ctx");
  1031. },
  1032. //>>excludeStart("ide", pragmas.excludeIdeData);
  1033. args: ["aString"],
  1034. source: "print: aString\x0a\x09| start stop currentLine |\x0a currentLine := (editor getCursor: false) line.\x0a\x09start := HashedCollection new.\x0a\x09start at: 'line' put: currentLine.\x0a\x09start at: 'ch' put: (editor getCursor: false) ch.\x0a (editor getSelection) ifEmpty: [\x0a \x09\x22select current line if selection is empty\x22\x0a \x09start at: 'ch' put: (editor getLine: currentLine) size.\x0a editor setSelection: #{'line' -> currentLine. 'ch' -> 0} end: start.\x0a ].\x0a\x09stop := HashedCollection new.\x0a\x09stop at: 'line' put: currentLine.\x0a\x09stop at: 'ch' put: ((start at: 'ch') + aString size + 2).\x0a\x0a\x09editor replaceSelection: (editor getSelection, ' ', aString, ' ').\x0a\x09editor setCursor: (editor getCursor: true).\x0a\x09editor setSelection: stop end: start",
  1035. referencedClasses: ["HashedCollection"],
  1036. //>>excludeEnd("ide");
  1037. messageSends: ["line", "getCursor:", "new", "at:put:", "ch", "ifEmpty:", "getSelection", "size", "getLine:", "setSelection:end:", "+", "at:", "replaceSelection:", ",", "setCursor:"]
  1038. }),
  1039. $globals.HLCodeWidget);
  1040. $core.addMethod(
  1041. $core.method({
  1042. selector: "printIt",
  1043. protocol: 'actions',
  1044. fn: function (){
  1045. var self=this;
  1046. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1047. return $core.withContext(function($ctx1) {
  1048. //>>excludeEnd("ctx");
  1049. self._print_($recv(self._doIt())._printString());
  1050. return self;
  1051. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1052. }, function($ctx1) {$ctx1.fill(self,"printIt",{},$globals.HLCodeWidget)});
  1053. //>>excludeEnd("ctx");
  1054. },
  1055. //>>excludeStart("ide", pragmas.excludeIdeData);
  1056. args: [],
  1057. source: "printIt\x0a\x09self print: self doIt printString",
  1058. referencedClasses: [],
  1059. //>>excludeEnd("ide");
  1060. messageSends: ["print:", "printString", "doIt"]
  1061. }),
  1062. $globals.HLCodeWidget);
  1063. $core.addMethod(
  1064. $core.method({
  1065. selector: "receiver",
  1066. protocol: 'accessing',
  1067. fn: function (){
  1068. var self=this;
  1069. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1070. return $core.withContext(function($ctx1) {
  1071. //>>excludeEnd("ctx");
  1072. return $recv(self._model())._receiver();
  1073. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1074. }, function($ctx1) {$ctx1.fill(self,"receiver",{},$globals.HLCodeWidget)});
  1075. //>>excludeEnd("ctx");
  1076. },
  1077. //>>excludeStart("ide", pragmas.excludeIdeData);
  1078. args: [],
  1079. source: "receiver\x0a\x09^ self model receiver",
  1080. referencedClasses: [],
  1081. //>>excludeEnd("ide");
  1082. messageSends: ["receiver", "model"]
  1083. }),
  1084. $globals.HLCodeWidget);
  1085. $core.addMethod(
  1086. $core.method({
  1087. selector: "receiver:",
  1088. protocol: 'accessing',
  1089. fn: function (anObject){
  1090. var self=this;
  1091. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1092. return $core.withContext(function($ctx1) {
  1093. //>>excludeEnd("ctx");
  1094. $recv(self._model())._receiver_(anObject);
  1095. return self;
  1096. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1097. }, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject},$globals.HLCodeWidget)});
  1098. //>>excludeEnd("ctx");
  1099. },
  1100. //>>excludeStart("ide", pragmas.excludeIdeData);
  1101. args: ["anObject"],
  1102. source: "receiver: anObject\x0a\x09self model receiver: anObject",
  1103. referencedClasses: [],
  1104. //>>excludeEnd("ide");
  1105. messageSends: ["receiver:", "model"]
  1106. }),
  1107. $globals.HLCodeWidget);
  1108. $core.addMethod(
  1109. $core.method({
  1110. selector: "renderButtonsOn:",
  1111. protocol: 'rendering',
  1112. fn: function (html){
  1113. var self=this;
  1114. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1115. return $core.withContext(function($ctx1) {
  1116. //>>excludeEnd("ctx");
  1117. var $1,$2,$3,$4,$5,$6,$7;
  1118. $1=$recv(html)._button();
  1119. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1120. $ctx1.sendIdx["button"]=1;
  1121. //>>excludeEnd("ctx");
  1122. $recv($1)._class_("button");
  1123. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1124. $ctx1.sendIdx["class:"]=1;
  1125. //>>excludeEnd("ctx");
  1126. $recv($1)._with_("DoIt");
  1127. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1128. $ctx1.sendIdx["with:"]=1;
  1129. //>>excludeEnd("ctx");
  1130. $2=$recv($1)._onClick_((function(){
  1131. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1132. return $core.withContext(function($ctx2) {
  1133. //>>excludeEnd("ctx");
  1134. return self._doIt();
  1135. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1136. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1137. //>>excludeEnd("ctx");
  1138. }));
  1139. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1140. $ctx1.sendIdx["onClick:"]=1;
  1141. //>>excludeEnd("ctx");
  1142. $3=$recv(html)._button();
  1143. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1144. $ctx1.sendIdx["button"]=2;
  1145. //>>excludeEnd("ctx");
  1146. $recv($3)._class_("button");
  1147. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1148. $ctx1.sendIdx["class:"]=2;
  1149. //>>excludeEnd("ctx");
  1150. $recv($3)._with_("PrintIt");
  1151. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1152. $ctx1.sendIdx["with:"]=2;
  1153. //>>excludeEnd("ctx");
  1154. $4=$recv($3)._onClick_((function(){
  1155. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1156. return $core.withContext(function($ctx2) {
  1157. //>>excludeEnd("ctx");
  1158. return self._printIt();
  1159. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1160. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  1161. //>>excludeEnd("ctx");
  1162. }));
  1163. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1164. $ctx1.sendIdx["onClick:"]=2;
  1165. //>>excludeEnd("ctx");
  1166. $5=$recv(html)._button();
  1167. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1168. $ctx1.sendIdx["button"]=3;
  1169. //>>excludeEnd("ctx");
  1170. $recv($5)._class_("button");
  1171. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1172. $ctx1.sendIdx["class:"]=3;
  1173. //>>excludeEnd("ctx");
  1174. $recv($5)._with_("InspectIt");
  1175. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1176. $ctx1.sendIdx["with:"]=3;
  1177. //>>excludeEnd("ctx");
  1178. $6=$recv($5)._onClick_((function(){
  1179. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1180. return $core.withContext(function($ctx2) {
  1181. //>>excludeEnd("ctx");
  1182. return self._inspectIt();
  1183. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1184. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)});
  1185. //>>excludeEnd("ctx");
  1186. }));
  1187. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1188. $ctx1.sendIdx["onClick:"]=3;
  1189. //>>excludeEnd("ctx");
  1190. $7=$recv(html)._button();
  1191. $recv($7)._class_("button");
  1192. $recv($7)._with_("BrowseIt");
  1193. $recv($7)._onClick_((function(){
  1194. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1195. return $core.withContext(function($ctx2) {
  1196. //>>excludeEnd("ctx");
  1197. return self._browseIt();
  1198. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1199. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,4)});
  1200. //>>excludeEnd("ctx");
  1201. }));
  1202. return self;
  1203. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1204. }, function($ctx1) {$ctx1.fill(self,"renderButtonsOn:",{html:html},$globals.HLCodeWidget)});
  1205. //>>excludeEnd("ctx");
  1206. },
  1207. //>>excludeStart("ide", pragmas.excludeIdeData);
  1208. args: ["html"],
  1209. source: "renderButtonsOn: html\x0a\x09html button \x0a\x09\x09class: 'button';\x0a\x09\x09with: 'DoIt';\x0a\x09\x09onClick: [ self doIt ].\x0a\x09html button \x0a\x09\x09class: 'button';\x0a\x09\x09with: 'PrintIt';\x0a\x09\x09onClick: [ self printIt ].\x0a\x09html button \x0a\x09\x09class: 'button';\x0a\x09\x09with: 'InspectIt';\x0a\x09\x09onClick: [ self inspectIt ].\x0a\x09html button \x0a\x09\x09class: 'button';\x0a\x09\x09with: 'BrowseIt';\x0a\x09\x09onClick: [ self browseIt ]",
  1210. referencedClasses: [],
  1211. //>>excludeEnd("ide");
  1212. messageSends: ["class:", "button", "with:", "onClick:", "doIt", "printIt", "inspectIt", "browseIt"]
  1213. }),
  1214. $globals.HLCodeWidget);
  1215. $core.addMethod(
  1216. $core.method({
  1217. selector: "renderContentOn:",
  1218. protocol: 'rendering',
  1219. fn: function (html){
  1220. var self=this;
  1221. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1222. return $core.withContext(function($ctx1) {
  1223. //>>excludeEnd("ctx");
  1224. var $1,$2,$3,$4;
  1225. $1=$recv(html)._div();
  1226. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1227. $ctx1.sendIdx["div"]=1;
  1228. //>>excludeEnd("ctx");
  1229. $recv($1)._class_("editor");
  1230. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1231. $ctx1.sendIdx["class:"]=1;
  1232. //>>excludeEnd("ctx");
  1233. $2=$recv($1)._with_((function(){
  1234. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1235. return $core.withContext(function($ctx2) {
  1236. //>>excludeEnd("ctx");
  1237. self["@code"]=$recv(html)._textarea();
  1238. return self["@code"];
  1239. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1240. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  1241. //>>excludeEnd("ctx");
  1242. }));
  1243. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1244. $ctx1.sendIdx["with:"]=1;
  1245. //>>excludeEnd("ctx");
  1246. $3=$recv(html)._div();
  1247. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1248. $ctx1.sendIdx["div"]=2;
  1249. //>>excludeEnd("ctx");
  1250. self["@state"]=$recv($3)._class_("state");
  1251. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1252. $ctx1.sendIdx["class:"]=2;
  1253. //>>excludeEnd("ctx");
  1254. $4=$recv(html)._div();
  1255. $recv($4)._class_("buttons_bar");
  1256. $recv($4)._with_((function(){
  1257. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1258. return $core.withContext(function($ctx2) {
  1259. //>>excludeEnd("ctx");
  1260. return self._renderButtonsOn_(html);
  1261. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1262. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  1263. //>>excludeEnd("ctx");
  1264. }));
  1265. self._setEditorOn_($recv(self["@code"])._element());
  1266. self._configureEditor();
  1267. self._updateState();
  1268. return self;
  1269. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1270. }, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},$globals.HLCodeWidget)});
  1271. //>>excludeEnd("ctx");
  1272. },
  1273. //>>excludeStart("ide", pragmas.excludeIdeData);
  1274. args: ["html"],
  1275. source: "renderContentOn: html\x0a\x09html div class: 'editor'; with: [\x0a\x09\x09code := html textarea ].\x0a\x09state := html div class: 'state'.\x0a\x09\x0a\x09html div \x0a\x09\x09class: 'buttons_bar';\x0a\x09\x09with: [ self renderButtonsOn: html ].\x0a\x09\x0a\x09self \x0a\x09\x09setEditorOn: code element;\x0a\x09\x09configureEditor;\x0a\x09\x09updateState",
  1276. referencedClasses: [],
  1277. //>>excludeEnd("ide");
  1278. messageSends: ["class:", "div", "with:", "textarea", "renderButtonsOn:", "setEditorOn:", "element", "configureEditor", "updateState"]
  1279. }),
  1280. $globals.HLCodeWidget);
  1281. $core.addMethod(
  1282. $core.method({
  1283. selector: "saveIt",
  1284. protocol: 'actions',
  1285. fn: function (){
  1286. var self=this;
  1287. return self;
  1288. },
  1289. //>>excludeStart("ide", pragmas.excludeIdeData);
  1290. args: [],
  1291. source: "saveIt\x0a\x09\x22I do not do anything\x22",
  1292. referencedClasses: [],
  1293. //>>excludeEnd("ide");
  1294. messageSends: []
  1295. }),
  1296. $globals.HLCodeWidget);
  1297. $core.addMethod(
  1298. $core.method({
  1299. selector: "selection",
  1300. protocol: 'accessing',
  1301. fn: function (){
  1302. var self=this;
  1303. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1304. return $core.withContext(function($ctx1) {
  1305. //>>excludeEnd("ctx");
  1306. return $recv(self["@editor"])._getSelection();
  1307. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1308. }, function($ctx1) {$ctx1.fill(self,"selection",{},$globals.HLCodeWidget)});
  1309. //>>excludeEnd("ctx");
  1310. },
  1311. //>>excludeStart("ide", pragmas.excludeIdeData);
  1312. args: [],
  1313. source: "selection\x0a\x09^editor getSelection",
  1314. referencedClasses: [],
  1315. //>>excludeEnd("ide");
  1316. messageSends: ["getSelection"]
  1317. }),
  1318. $globals.HLCodeWidget);
  1319. $core.addMethod(
  1320. $core.method({
  1321. selector: "selectionEnd",
  1322. protocol: 'accessing',
  1323. fn: function (){
  1324. var self=this;
  1325. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1326. return $core.withContext(function($ctx1) {
  1327. //>>excludeEnd("ctx");
  1328. return $recv($recv(self["@code"])._element())._selectionEnd();
  1329. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1330. }, function($ctx1) {$ctx1.fill(self,"selectionEnd",{},$globals.HLCodeWidget)});
  1331. //>>excludeEnd("ctx");
  1332. },
  1333. //>>excludeStart("ide", pragmas.excludeIdeData);
  1334. args: [],
  1335. source: "selectionEnd\x0a ^code element selectionEnd",
  1336. referencedClasses: [],
  1337. //>>excludeEnd("ide");
  1338. messageSends: ["selectionEnd", "element"]
  1339. }),
  1340. $globals.HLCodeWidget);
  1341. $core.addMethod(
  1342. $core.method({
  1343. selector: "selectionEnd:",
  1344. protocol: 'accessing',
  1345. fn: function (anInteger){
  1346. var self=this;
  1347. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1348. return $core.withContext(function($ctx1) {
  1349. //>>excludeEnd("ctx");
  1350. $recv($recv(self["@code"])._element())._selectionEnd_(anInteger);
  1351. return self;
  1352. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1353. }, function($ctx1) {$ctx1.fill(self,"selectionEnd:",{anInteger:anInteger},$globals.HLCodeWidget)});
  1354. //>>excludeEnd("ctx");
  1355. },
  1356. //>>excludeStart("ide", pragmas.excludeIdeData);
  1357. args: ["anInteger"],
  1358. source: "selectionEnd: anInteger\x0a code element selectionEnd: anInteger",
  1359. referencedClasses: [],
  1360. //>>excludeEnd("ide");
  1361. messageSends: ["selectionEnd:", "element"]
  1362. }),
  1363. $globals.HLCodeWidget);
  1364. $core.addMethod(
  1365. $core.method({
  1366. selector: "selectionStart",
  1367. protocol: 'accessing',
  1368. fn: function (){
  1369. var self=this;
  1370. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1371. return $core.withContext(function($ctx1) {
  1372. //>>excludeEnd("ctx");
  1373. return $recv($recv(self["@code"])._element())._selectionStart();
  1374. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1375. }, function($ctx1) {$ctx1.fill(self,"selectionStart",{},$globals.HLCodeWidget)});
  1376. //>>excludeEnd("ctx");
  1377. },
  1378. //>>excludeStart("ide", pragmas.excludeIdeData);
  1379. args: [],
  1380. source: "selectionStart\x0a ^code element selectionStart",
  1381. referencedClasses: [],
  1382. //>>excludeEnd("ide");
  1383. messageSends: ["selectionStart", "element"]
  1384. }),
  1385. $globals.HLCodeWidget);
  1386. $core.addMethod(
  1387. $core.method({
  1388. selector: "selectionStart:",
  1389. protocol: 'accessing',
  1390. fn: function (anInteger){
  1391. var self=this;
  1392. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1393. return $core.withContext(function($ctx1) {
  1394. //>>excludeEnd("ctx");
  1395. $recv($recv(self["@code"])._element())._selectionStart_(anInteger);
  1396. return self;
  1397. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1398. }, function($ctx1) {$ctx1.fill(self,"selectionStart:",{anInteger:anInteger},$globals.HLCodeWidget)});
  1399. //>>excludeEnd("ctx");
  1400. },
  1401. //>>excludeStart("ide", pragmas.excludeIdeData);
  1402. args: ["anInteger"],
  1403. source: "selectionStart: anInteger\x0a code element selectionStart: anInteger",
  1404. referencedClasses: [],
  1405. //>>excludeEnd("ide");
  1406. messageSends: ["selectionStart:", "element"]
  1407. }),
  1408. $globals.HLCodeWidget);
  1409. $core.addMethod(
  1410. $core.method({
  1411. selector: "setEditorOn:",
  1412. protocol: 'actions',
  1413. fn: function (aTextarea){
  1414. var self=this;
  1415. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1416. return $core.withContext(function($ctx1) {
  1417. //>>excludeEnd("ctx");
  1418. self['@editor'] = self._class()._codeMirror().fromTextArea(aTextarea, self._editorOptions());
  1419. return self;
  1420. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1421. }, function($ctx1) {$ctx1.fill(self,"setEditorOn:",{aTextarea:aTextarea},$globals.HLCodeWidget)});
  1422. //>>excludeEnd("ctx");
  1423. },
  1424. //>>excludeStart("ide", pragmas.excludeIdeData);
  1425. args: ["aTextarea"],
  1426. source: "setEditorOn: aTextarea\x0a\x09<self['@editor'] = self._class()._codeMirror().fromTextArea(aTextarea, self._editorOptions())>",
  1427. referencedClasses: [],
  1428. //>>excludeEnd("ide");
  1429. messageSends: []
  1430. }),
  1431. $globals.HLCodeWidget);
  1432. $core.addMethod(
  1433. $core.method({
  1434. selector: "updateState",
  1435. protocol: 'updating',
  1436. fn: function (){
  1437. var self=this;
  1438. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1439. return $core.withContext(function($ctx1) {
  1440. //>>excludeEnd("ctx");
  1441. var $1,$2;
  1442. $1=self._hasModification();
  1443. if($core.assert($1)){
  1444. $2=$recv(self["@state"])._asJQuery();
  1445. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1446. $ctx1.sendIdx["asJQuery"]=1;
  1447. //>>excludeEnd("ctx");
  1448. $recv($2)._addClass_("modified");
  1449. } else {
  1450. $recv($recv(self["@state"])._asJQuery())._removeClass_("modified");
  1451. };
  1452. return self;
  1453. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1454. }, function($ctx1) {$ctx1.fill(self,"updateState",{},$globals.HLCodeWidget)});
  1455. //>>excludeEnd("ctx");
  1456. },
  1457. //>>excludeStart("ide", pragmas.excludeIdeData);
  1458. args: [],
  1459. source: "updateState\x0a\x09self hasModification \x0a\x09\x09ifTrue: [ state asJQuery addClass: 'modified' ]\x0a\x09\x09ifFalse: [ state asJQuery removeClass: 'modified' ]",
  1460. referencedClasses: [],
  1461. //>>excludeEnd("ide");
  1462. messageSends: ["ifTrue:ifFalse:", "hasModification", "addClass:", "asJQuery", "removeClass:"]
  1463. }),
  1464. $globals.HLCodeWidget);
  1465. $core.addMethod(
  1466. $core.method({
  1467. selector: "variableHintFor:token:",
  1468. protocol: 'hints',
  1469. fn: function (anEditor,aToken){
  1470. var self=this;
  1471. var variables,classNames,pseudoVariables;
  1472. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1473. return $core.withContext(function($ctx1) {
  1474. //>>excludeEnd("ctx");
  1475. var $3,$2,$1,$8,$7,$6,$5,$9,$4;
  1476. $3=$recv($recv($recv(anEditor)._display())._wrapper())._asJQuery();
  1477. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1478. $ctx1.sendIdx["asJQuery"]=1;
  1479. //>>excludeEnd("ctx");
  1480. $2=$recv($3)._find_("span.cm-variable");
  1481. $1=$recv($2)._get();
  1482. variables=$recv($1)._collect_((function(each){
  1483. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1484. return $core.withContext(function($ctx2) {
  1485. //>>excludeEnd("ctx");
  1486. return $recv($recv(each)._asJQuery())._html();
  1487. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1488. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  1489. //>>excludeEnd("ctx");
  1490. }));
  1491. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1492. $ctx1.sendIdx["collect:"]=1;
  1493. //>>excludeEnd("ctx");
  1494. classNames=$recv($recv($globals.Smalltalk)._classes())._collect_((function(each){
  1495. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1496. return $core.withContext(function($ctx2) {
  1497. //>>excludeEnd("ctx");
  1498. return $recv(each)._name();
  1499. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1500. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
  1501. //>>excludeEnd("ctx");
  1502. }));
  1503. pseudoVariables=$recv($globals.Smalltalk)._pseudoVariableNames();
  1504. $8=$recv($recv(variables).__comma(classNames)).__comma(pseudoVariables);
  1505. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1506. $ctx1.sendIdx[","]=1;
  1507. //>>excludeEnd("ctx");
  1508. $7=$recv($8)._asSet();
  1509. $6=$recv($7)._asArray();
  1510. $5=$recv($6)._sort();
  1511. $4=$recv($5)._select_((function(each){
  1512. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1513. return $core.withContext(function($ctx2) {
  1514. //>>excludeEnd("ctx");
  1515. $9=$recv(aToken)._string();
  1516. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1517. $ctx2.sendIdx["string"]=1;
  1518. //>>excludeEnd("ctx");
  1519. return $recv(each)._includesSubString_($9);
  1520. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1521. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,3)});
  1522. //>>excludeEnd("ctx");
  1523. }));
  1524. return $recv($4)._reject_((function(each){
  1525. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1526. return $core.withContext(function($ctx2) {
  1527. //>>excludeEnd("ctx");
  1528. return $recv(each).__eq($recv(aToken)._string());
  1529. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1530. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,4)});
  1531. //>>excludeEnd("ctx");
  1532. }));
  1533. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1534. }, function($ctx1) {$ctx1.fill(self,"variableHintFor:token:",{anEditor:anEditor,aToken:aToken,variables:variables,classNames:classNames,pseudoVariables:pseudoVariables},$globals.HLCodeWidget)});
  1535. //>>excludeEnd("ctx");
  1536. },
  1537. //>>excludeStart("ide", pragmas.excludeIdeData);
  1538. args: ["anEditor", "aToken"],
  1539. source: "variableHintFor: anEditor token: aToken\x0a\x09| variables classNames pseudoVariables |\x0a\x09\x0a\x09variables := (anEditor display wrapper asJQuery find: 'span.cm-variable') get\x0a\x09\x09collect: [ :each | each asJQuery html ].\x0a\x09\x0a\x09classNames := Smalltalk classes collect: [ :each | each name ].\x0a\x09pseudoVariables := Smalltalk pseudoVariableNames.\x0a\x09\x0a\x09^ ((variables, classNames, pseudoVariables) asSet asArray sort\x0a\x09\x09select: [ :each | each includesSubString: aToken string ])\x0a\x09\x09reject: [ :each | each = aToken string ]",
  1540. referencedClasses: ["Smalltalk"],
  1541. //>>excludeEnd("ide");
  1542. messageSends: ["collect:", "get", "find:", "asJQuery", "wrapper", "display", "html", "classes", "name", "pseudoVariableNames", "reject:", "select:", "sort", "asArray", "asSet", ",", "includesSubString:", "string", "="]
  1543. }),
  1544. $globals.HLCodeWidget);
  1545. $core.addMethod(
  1546. $core.method({
  1547. selector: "codeMirror",
  1548. protocol: 'accessing',
  1549. fn: function (){
  1550. var self=this;
  1551. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1552. return $core.withContext(function($ctx1) {
  1553. //>>excludeEnd("ctx");
  1554. return $recv(require)._value_("codemirror/lib/codemirror");
  1555. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1556. }, function($ctx1) {$ctx1.fill(self,"codeMirror",{},$globals.HLCodeWidget.klass)});
  1557. //>>excludeEnd("ctx");
  1558. },
  1559. //>>excludeStart("ide", pragmas.excludeIdeData);
  1560. args: [],
  1561. source: "codeMirror\x0a\x09^ require value: 'codemirror/lib/codemirror'",
  1562. referencedClasses: [],
  1563. //>>excludeEnd("ide");
  1564. messageSends: ["value:"]
  1565. }),
  1566. $globals.HLCodeWidget.klass);
  1567. $core.addMethod(
  1568. $core.method({
  1569. selector: "hintFor:options:",
  1570. protocol: 'hints',
  1571. fn: function (anEditor,options){
  1572. var self=this;
  1573. var cursor,token,completions,codeMirror;
  1574. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1575. return $core.withContext(function($ctx1) {
  1576. //>>excludeEnd("ctx");
  1577. var $1,$4,$3,$2,$5,$6,$8,$9,$7;
  1578. codeMirror=self._codeMirror();
  1579. cursor=$recv(anEditor)._getCursor();
  1580. token=$recv(anEditor)._getTokenAt_(cursor);
  1581. $1=token;
  1582. $4=$recv(codeMirror)._basicAt_("innerMode");
  1583. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1584. $ctx1.sendIdx["basicAt:"]=1;
  1585. //>>excludeEnd("ctx");
  1586. $3=$recv($4)._value_value_($recv(anEditor)._getMode(),$recv(token)._at_("state"));
  1587. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1588. $ctx1.sendIdx["value:value:"]=1;
  1589. //>>excludeEnd("ctx");
  1590. $2=$recv($3)._state();
  1591. $recv($1)._at_put_("state",$2);
  1592. $5=$recv($recv(token)._type()).__eq("variable");
  1593. if($core.assert($5)){
  1594. completions=$recv($globals.HLCodeWidget)._variableHintFor_token_(anEditor,token);
  1595. } else {
  1596. completions=$recv($globals.HLCodeWidget)._messageHintFor_token_(anEditor,token);
  1597. };
  1598. $6=completions;
  1599. $8=$recv(codeMirror)._basicAt_("Pos");
  1600. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1601. $ctx1.sendIdx["basicAt:"]=2;
  1602. //>>excludeEnd("ctx");
  1603. $9=$recv(cursor)._line();
  1604. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1605. $ctx1.sendIdx["line"]=1;
  1606. //>>excludeEnd("ctx");
  1607. $7=$recv($8)._value_value_($9,$recv(token)._end());
  1608. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1609. $ctx1.sendIdx["value:value:"]=2;
  1610. //>>excludeEnd("ctx");
  1611. return $globals.HashedCollection._newFromPairs_(["list",$6,"from",$7,"to",$recv($recv(codeMirror)._basicAt_("Pos"))._value_value_($recv(cursor)._line(),$recv(token)._start())]);
  1612. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1613. }, function($ctx1) {$ctx1.fill(self,"hintFor:options:",{anEditor:anEditor,options:options,cursor:cursor,token:token,completions:completions,codeMirror:codeMirror},$globals.HLCodeWidget.klass)});
  1614. //>>excludeEnd("ctx");
  1615. },
  1616. //>>excludeStart("ide", pragmas.excludeIdeData);
  1617. args: ["anEditor", "options"],
  1618. source: "hintFor: anEditor options: options\x0a\x09| cursor token completions codeMirror |\x0a\x09\x0a\x09codeMirror := self codeMirror.\x0a\x09cursor := anEditor getCursor.\x0a\x09token := anEditor getTokenAt: cursor.\x0a\x09token at: 'state' put: ((codeMirror basicAt: 'innerMode')\x0a\x09\x09value: anEditor getMode value: (token at: 'state')) state.\x0a\x09\x0a\x09completions := token type = 'variable' \x0a\x09\x09ifTrue: [ HLCodeWidget variableHintFor: anEditor token: token ]\x0a\x09\x09ifFalse: [ HLCodeWidget messageHintFor: anEditor token: token ].\x0a\x09\x0a\x09^ #{\x0a\x09\x09'list' -> completions.\x0a\x09\x09'from' -> ((codeMirror basicAt: 'Pos') value: cursor line value: token end).\x0a\x09\x09'to' -> ((codeMirror basicAt: 'Pos') value: cursor line value: token start)\x0a\x09}",
  1619. referencedClasses: ["HLCodeWidget"],
  1620. //>>excludeEnd("ide");
  1621. messageSends: ["codeMirror", "getCursor", "getTokenAt:", "at:put:", "state", "value:value:", "basicAt:", "getMode", "at:", "ifTrue:ifFalse:", "=", "type", "variableHintFor:token:", "messageHintFor:token:", "line", "end", "start"]
  1622. }),
  1623. $globals.HLCodeWidget.klass);
  1624. $core.addMethod(
  1625. $core.method({
  1626. selector: "initialize",
  1627. protocol: 'initialization',
  1628. fn: function (){
  1629. var self=this;
  1630. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1631. return $core.withContext(function($ctx1) {
  1632. //>>excludeEnd("ctx");
  1633. (
  1634. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1635. $ctx1.supercall = true,
  1636. //>>excludeEnd("ctx");
  1637. ($globals.HLCodeWidget.klass.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
  1638. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1639. $ctx1.supercall = false;
  1640. //>>excludeEnd("ctx");;
  1641. self._setupCodeMirror();
  1642. self._setupCommands();
  1643. self._setupKeyMaps();
  1644. return self;
  1645. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1646. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.HLCodeWidget.klass)});
  1647. //>>excludeEnd("ctx");
  1648. },
  1649. //>>excludeStart("ide", pragmas.excludeIdeData);
  1650. args: [],
  1651. source: "initialize\x0a\x09super initialize.\x0a\x09self \x0a\x09\x09setupCodeMirror;\x0a\x09\x09setupCommands;\x0a\x09\x09setupKeyMaps.",
  1652. referencedClasses: [],
  1653. //>>excludeEnd("ide");
  1654. messageSends: ["initialize", "setupCodeMirror", "setupCommands", "setupKeyMaps"]
  1655. }),
  1656. $globals.HLCodeWidget.klass);
  1657. $core.addMethod(
  1658. $core.method({
  1659. selector: "keyMap",
  1660. protocol: 'accessing',
  1661. fn: function (){
  1662. var self=this;
  1663. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1664. return $core.withContext(function($ctx1) {
  1665. //>>excludeEnd("ctx");
  1666. var $1;
  1667. $1=$recv($recv($recv($globals.HLManager)._current())._keyBinder())._systemIsMac();
  1668. if($core.assert($1)){
  1669. return self._macKeyMap();
  1670. } else {
  1671. return self._pcKeyMap();
  1672. };
  1673. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1674. }, function($ctx1) {$ctx1.fill(self,"keyMap",{},$globals.HLCodeWidget.klass)});
  1675. //>>excludeEnd("ctx");
  1676. },
  1677. //>>excludeStart("ide", pragmas.excludeIdeData);
  1678. args: [],
  1679. source: "keyMap\x0a\x09^ HLManager current keyBinder systemIsMac\x0a\x09\x09ifTrue: [ self macKeyMap ]\x0a\x09\x09ifFalse: [ self pcKeyMap ]",
  1680. referencedClasses: ["HLManager"],
  1681. //>>excludeEnd("ide");
  1682. messageSends: ["ifTrue:ifFalse:", "systemIsMac", "keyBinder", "current", "macKeyMap", "pcKeyMap"]
  1683. }),
  1684. $globals.HLCodeWidget.klass);
  1685. $core.addMethod(
  1686. $core.method({
  1687. selector: "macKeyMap",
  1688. protocol: 'accessing',
  1689. fn: function (){
  1690. var self=this;
  1691. return $globals.HashedCollection._newFromPairs_(["Alt-Backspace","delWordBefore","Alt-Delete","delWordAfter","Alt-Left","goWordLeft","Alt-Right","goWordRight","Cmd-A","selectAll","Cmd-Alt-F","replace","Cmd-D","doIt","Cmd-B","browseIt","Cmd-Down","goDocEnd","Cmd-End","goDocEnd","Cmd-F","find","Cmd-G","findNext","Cmd-I","inspectIt","Cmd-Left","goLineStart","Cmd-P","printIt","Cmd-Right","goLineEnd","Cmd-S","saveIt","Cmd-Up","goDocStart","Cmd-Y","redo","Cmd-Z","undo","Cmd-[","indentLess","Cmd-]","indentMore","Ctrl-Alt-Backspace","delWordAfter","Shift-Cmd-Alt-F","replaceAll","Shift-Cmd-G","findPrev","Shift-Cmd-Z","redo","fallthrough",["basic","emacsy"]]);
  1692. },
  1693. //>>excludeStart("ide", pragmas.excludeIdeData);
  1694. args: [],
  1695. source: "macKeyMap\x0a\x09^ #{\x0a\x09\x09'Alt-Backspace'\x09\x09\x09-> 'delWordBefore'.\x0a\x09\x09'Alt-Delete'\x09\x09\x09-> 'delWordAfter'. \x0a\x09\x09'Alt-Left'\x09\x09\x09\x09-> 'goWordLeft'.\x0a\x09\x09'Alt-Right'\x09\x09\x09\x09-> 'goWordRight'. \x0a\x09\x09'Cmd-A'\x09\x09\x09\x09\x09-> 'selectAll'. \x0a\x09\x09'Cmd-Alt-F'\x09\x09\x09\x09-> 'replace'. \x0a\x09\x09'Cmd-D'\x09\x09\x09\x09\x09-> 'doIt'. \x0a\x09\x09'Cmd-B'\x09\x09\x09\x09\x09-> 'browseIt'. \x0a\x09\x09'Cmd-Down'\x09\x09\x09\x09-> 'goDocEnd'. \x0a\x09\x09'Cmd-End'\x09\x09\x09\x09-> 'goDocEnd'. \x0a\x09\x09'Cmd-F'\x09\x09\x09\x09\x09-> 'find'.\x0a\x09\x09'Cmd-G'\x09\x09\x09\x09\x09-> 'findNext'. \x0a\x09\x09'Cmd-I'\x09\x09\x09\x09\x09-> 'inspectIt'. \x0a\x09\x09'Cmd-Left'\x09\x09\x09\x09-> 'goLineStart'. \x0a\x09\x09'Cmd-P'\x09\x09\x09\x09\x09-> 'printIt'. \x0a\x09\x09'Cmd-Right'\x09\x09\x09\x09-> 'goLineEnd'. \x0a\x09\x09'Cmd-S'\x09\x09\x09\x09\x09-> 'saveIt'. \x0a\x09\x09'Cmd-Up'\x09\x09\x09\x09-> 'goDocStart'. \x0a\x09\x09'Cmd-Y'\x09\x09\x09\x09\x09-> 'redo'.\x0a\x09\x09'Cmd-Z'\x09\x09\x09\x09\x09-> 'undo'. \x0a\x09\x09'Cmd-['\x09\x09\x09\x09\x09-> 'indentLess'. \x0a\x09\x09'Cmd-]'\x09\x09\x09\x09\x09-> 'indentMore'.\x0a\x09\x09'Ctrl-Alt-Backspace'\x09-> 'delWordAfter'. \x0a\x09\x09'Shift-Cmd-Alt-F'\x09\x09-> 'replaceAll'.\x0a\x09\x09'Shift-Cmd-G'\x09\x09\x09-> 'findPrev'. \x0a\x09\x09'Shift-Cmd-Z'\x09\x09\x09-> 'redo'. \x0a \x09'fallthrough' \x09\x09\x09-> { 'basic'. 'emacsy' }\x0a }",
  1696. referencedClasses: [],
  1697. //>>excludeEnd("ide");
  1698. messageSends: []
  1699. }),
  1700. $globals.HLCodeWidget.klass);
  1701. $core.addMethod(
  1702. $core.method({
  1703. selector: "messageHintFor:token:",
  1704. protocol: 'hints',
  1705. fn: function (anEditor,aToken){
  1706. var self=this;
  1707. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1708. return $core.withContext(function($ctx1) {
  1709. //>>excludeEnd("ctx");
  1710. return $recv($recv(anEditor)._at_("amberCodeWidget"))._messageHintFor_token_(anEditor,aToken);
  1711. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1712. }, function($ctx1) {$ctx1.fill(self,"messageHintFor:token:",{anEditor:anEditor,aToken:aToken},$globals.HLCodeWidget.klass)});
  1713. //>>excludeEnd("ctx");
  1714. },
  1715. //>>excludeStart("ide", pragmas.excludeIdeData);
  1716. args: ["anEditor", "aToken"],
  1717. source: "messageHintFor: anEditor token: aToken\x0a\x09^ (anEditor at: 'amberCodeWidget')\x0a\x09\x09messageHintFor: anEditor token: aToken",
  1718. referencedClasses: [],
  1719. //>>excludeEnd("ide");
  1720. messageSends: ["messageHintFor:token:", "at:"]
  1721. }),
  1722. $globals.HLCodeWidget.klass);
  1723. $core.addMethod(
  1724. $core.method({
  1725. selector: "pcKeyMap",
  1726. protocol: 'accessing',
  1727. fn: function (){
  1728. var self=this;
  1729. return $globals.HashedCollection._newFromPairs_(["Alt-Left","goLineStart","Alt-Right","goLineEnd","Alt-Up","goDocStart","Ctrl-A","selectAll","Ctrl-Backspace","delWordBefore","Ctrl-D","doIt","Ctrl-B","browseIt","Ctrl-Delete","delWordAfter","Ctrl-Down","goDocEnd","Ctrl-End","goDocEnd","Ctrl-F","find","Ctrl-G","findNext","Ctrl-I","inspectIt","Ctrl-Home","goDocStart","Ctrl-Left","goWordLeft","Ctrl-P","printIt","Ctrl-Right","goWordRight","Ctrl-S","saveIt","Ctrl-Y","redo","Ctrl-Z","undo","Ctrl-[","indentLess","Ctrl-]","indentMore","Shift-Ctrl-F","replace","Shift-Ctrl-G","findPrev","Shift-Ctrl-R","replaceAll","Shift-Ctrl-Z","redo","fallthrough",["basic"]]);
  1730. },
  1731. //>>excludeStart("ide", pragmas.excludeIdeData);
  1732. args: [],
  1733. source: "pcKeyMap\x0a\x09^ #{\x0a\x09\x09'Alt-Left' -> \x09\x09'goLineStart'. \x0a\x09\x09'Alt-Right' -> \x09\x09'goLineEnd'.\x0a\x09\x09'Alt-Up' -> \x09\x09'goDocStart'. \x0a\x09\x09'Ctrl-A' -> \x09\x09'selectAll'. \x0a\x09\x09'Ctrl-Backspace' -> 'delWordBefore'. \x0a\x09\x09'Ctrl-D' -> \x09\x09'doIt'. \x0a\x09\x09'Ctrl-B' -> \x09\x09'browseIt'. \x0a\x09\x09'Ctrl-Delete' -> \x09\x09'delWordAfter'. \x0a\x09\x09'Ctrl-Down' -> \x09\x09'goDocEnd'.\x0a\x09\x09'Ctrl-End' -> \x09\x09'goDocEnd'. \x0a\x09\x09'Ctrl-F' -> \x09\x09'find'.\x0a\x09\x09'Ctrl-G' -> \x09\x09'findNext'. \x0a\x09\x09'Ctrl-I' -> \x09\x09'inspectIt'.\x0a\x09\x09'Ctrl-Home' -> \x09\x09'goDocStart'. \x0a\x09\x09'Ctrl-Left' -> \x09\x09'goWordLeft'. \x0a\x09\x09'Ctrl-P' -> \x09\x09'printIt'.\x0a\x09\x09'Ctrl-Right' -> \x09'goWordRight'. \x0a\x09\x09'Ctrl-S' -> \x09\x09'saveIt'. \x0a\x09\x09'Ctrl-Y' -> \x09\x09'redo'.\x0a\x09\x09'Ctrl-Z' -> \x09\x09'undo'. \x0a\x09\x09'Ctrl-[' -> \x09\x09'indentLess'. \x0a\x09\x09'Ctrl-]' -> \x09\x09'indentMore'.\x0a\x09\x09'Shift-Ctrl-F' -> \x09'replace'. \x0a\x09\x09'Shift-Ctrl-G' -> \x09'findPrev'. \x0a\x09\x09'Shift-Ctrl-R' -> \x09'replaceAll'.\x0a\x09\x09'Shift-Ctrl-Z' -> \x09'redo'. \x0a\x09\x09'fallthrough' -> \x09#('basic')\x0a}",
  1734. referencedClasses: [],
  1735. //>>excludeEnd("ide");
  1736. messageSends: []
  1737. }),
  1738. $globals.HLCodeWidget.klass);
  1739. $core.addMethod(
  1740. $core.method({
  1741. selector: "setupCodeMirror",
  1742. protocol: 'initialization',
  1743. fn: function (){
  1744. var self=this;
  1745. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1746. return $core.withContext(function($ctx1) {
  1747. //>>excludeEnd("ctx");
  1748. var codeMirror = self._codeMirror();
  1749. codeMirror.keyMap["default"].fallthrough = ["basic"];
  1750. codeMirror.commands.autocomplete = function(cm) {
  1751. codeMirror.showHint(cm, self._hintFor_options_.bind(self));
  1752. }
  1753. ;
  1754. return self;
  1755. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1756. }, function($ctx1) {$ctx1.fill(self,"setupCodeMirror",{},$globals.HLCodeWidget.klass)});
  1757. //>>excludeEnd("ctx");
  1758. },
  1759. //>>excludeStart("ide", pragmas.excludeIdeData);
  1760. args: [],
  1761. source: "setupCodeMirror\x0a\x09<\x0a\x09\x09var codeMirror = self._codeMirror();\x0a\x09\x09codeMirror.keyMap[\x22default\x22].fallthrough = [\x22basic\x22];\x0a\x09\x09codeMirror.commands.autocomplete = function(cm) {\x0a\x09\x09\x09codeMirror.showHint(cm, self._hintFor_options_.bind(self));\x0a\x09\x09}\x0a\x09>",
  1762. referencedClasses: [],
  1763. //>>excludeEnd("ide");
  1764. messageSends: []
  1765. }),
  1766. $globals.HLCodeWidget.klass);
  1767. $core.addMethod(
  1768. $core.method({
  1769. selector: "setupCommands",
  1770. protocol: 'initialization',
  1771. fn: function (){
  1772. var self=this;
  1773. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1774. return $core.withContext(function($ctx1) {
  1775. //>>excludeEnd("ctx");
  1776. var $1,$2,$3,$4,$5;
  1777. $1=$recv(self._codeMirror())._basicAt_("commands");
  1778. $recv($1)._at_put_("doIt",(function(cm){
  1779. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1780. return $core.withContext(function($ctx2) {
  1781. //>>excludeEnd("ctx");
  1782. $2=$recv(cm)._amberCodeWidget();
  1783. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1784. $ctx2.sendIdx["amberCodeWidget"]=1;
  1785. //>>excludeEnd("ctx");
  1786. return $recv($2)._doIt();
  1787. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1788. }, function($ctx2) {$ctx2.fillBlock({cm:cm},$ctx1,1)});
  1789. //>>excludeEnd("ctx");
  1790. }));
  1791. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1792. $ctx1.sendIdx["at:put:"]=1;
  1793. //>>excludeEnd("ctx");
  1794. $recv($1)._at_put_("inspectIt",(function(cm){
  1795. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1796. return $core.withContext(function($ctx2) {
  1797. //>>excludeEnd("ctx");
  1798. $3=$recv(cm)._amberCodeWidget();
  1799. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1800. $ctx2.sendIdx["amberCodeWidget"]=2;
  1801. //>>excludeEnd("ctx");
  1802. return $recv($3)._inspectIt();
  1803. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1804. }, function($ctx2) {$ctx2.fillBlock({cm:cm},$ctx1,2)});
  1805. //>>excludeEnd("ctx");
  1806. }));
  1807. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1808. $ctx1.sendIdx["at:put:"]=2;
  1809. //>>excludeEnd("ctx");
  1810. $recv($1)._at_put_("printIt",(function(cm){
  1811. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1812. return $core.withContext(function($ctx2) {
  1813. //>>excludeEnd("ctx");
  1814. $4=$recv(cm)._amberCodeWidget();
  1815. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1816. $ctx2.sendIdx["amberCodeWidget"]=3;
  1817. //>>excludeEnd("ctx");
  1818. return $recv($4)._printIt();
  1819. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1820. }, function($ctx2) {$ctx2.fillBlock({cm:cm},$ctx1,3)});
  1821. //>>excludeEnd("ctx");
  1822. }));
  1823. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1824. $ctx1.sendIdx["at:put:"]=3;
  1825. //>>excludeEnd("ctx");
  1826. $recv($1)._at_put_("saveIt",(function(cm){
  1827. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1828. return $core.withContext(function($ctx2) {
  1829. //>>excludeEnd("ctx");
  1830. $5=$recv(cm)._amberCodeWidget();
  1831. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1832. $ctx2.sendIdx["amberCodeWidget"]=4;
  1833. //>>excludeEnd("ctx");
  1834. return $recv($5)._saveIt();
  1835. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1836. }, function($ctx2) {$ctx2.fillBlock({cm:cm},$ctx1,4)});
  1837. //>>excludeEnd("ctx");
  1838. }));
  1839. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1840. $ctx1.sendIdx["at:put:"]=4;
  1841. //>>excludeEnd("ctx");
  1842. $recv($1)._at_put_("browseIt",(function(cm){
  1843. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1844. return $core.withContext(function($ctx2) {
  1845. //>>excludeEnd("ctx");
  1846. return $recv($recv(cm)._amberCodeWidget())._browseIt();
  1847. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1848. }, function($ctx2) {$ctx2.fillBlock({cm:cm},$ctx1,5)});
  1849. //>>excludeEnd("ctx");
  1850. }));
  1851. return self;
  1852. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1853. }, function($ctx1) {$ctx1.fill(self,"setupCommands",{},$globals.HLCodeWidget.klass)});
  1854. //>>excludeEnd("ctx");
  1855. },
  1856. //>>excludeStart("ide", pragmas.excludeIdeData);
  1857. args: [],
  1858. source: "setupCommands\x0a\x09(self codeMirror basicAt: 'commands') \x0a\x09\x09at: 'doIt' put: [ :cm | cm amberCodeWidget doIt ];\x0a\x09\x09at: 'inspectIt' put: [ :cm | cm amberCodeWidget inspectIt ];\x0a\x09\x09at: 'printIt' put: [ :cm | cm amberCodeWidget printIt ];\x0a\x09\x09at: 'saveIt' put: [ :cm | cm amberCodeWidget saveIt ];\x0a\x09\x09at: 'browseIt' put: [ :cm | cm amberCodeWidget browseIt ]",
  1859. referencedClasses: [],
  1860. //>>excludeEnd("ide");
  1861. messageSends: ["at:put:", "basicAt:", "codeMirror", "doIt", "amberCodeWidget", "inspectIt", "printIt", "saveIt", "browseIt"]
  1862. }),
  1863. $globals.HLCodeWidget.klass);
  1864. $core.addMethod(
  1865. $core.method({
  1866. selector: "setupKeyMaps",
  1867. protocol: 'initialization',
  1868. fn: function (){
  1869. var self=this;
  1870. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1871. return $core.withContext(function($ctx1) {
  1872. //>>excludeEnd("ctx");
  1873. self._codeMirror().keyMap['Amber'] = self._keyMap();
  1874. return self;
  1875. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1876. }, function($ctx1) {$ctx1.fill(self,"setupKeyMaps",{},$globals.HLCodeWidget.klass)});
  1877. //>>excludeEnd("ctx");
  1878. },
  1879. //>>excludeStart("ide", pragmas.excludeIdeData);
  1880. args: [],
  1881. source: "setupKeyMaps\x0a\x09<self._codeMirror().keyMap['Amber'] = self._keyMap()>",
  1882. referencedClasses: [],
  1883. //>>excludeEnd("ide");
  1884. messageSends: []
  1885. }),
  1886. $globals.HLCodeWidget.klass);
  1887. $core.addMethod(
  1888. $core.method({
  1889. selector: "variableHintFor:token:",
  1890. protocol: 'hints',
  1891. fn: function (anEditor,aToken){
  1892. var self=this;
  1893. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1894. return $core.withContext(function($ctx1) {
  1895. //>>excludeEnd("ctx");
  1896. return $recv($recv(anEditor)._at_("amberCodeWidget"))._variableHintFor_token_(anEditor,aToken);
  1897. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1898. }, function($ctx1) {$ctx1.fill(self,"variableHintFor:token:",{anEditor:anEditor,aToken:aToken},$globals.HLCodeWidget.klass)});
  1899. //>>excludeEnd("ctx");
  1900. },
  1901. //>>excludeStart("ide", pragmas.excludeIdeData);
  1902. args: ["anEditor", "aToken"],
  1903. source: "variableHintFor: anEditor token: aToken\x0a\x09^ (anEditor at: 'amberCodeWidget')\x0a\x09\x09variableHintFor: anEditor token: aToken",
  1904. referencedClasses: [],
  1905. //>>excludeEnd("ide");
  1906. messageSends: ["variableHintFor:token:", "at:"]
  1907. }),
  1908. $globals.HLCodeWidget.klass);
  1909. $core.addClass('HLNavigationCodeWidget', $globals.HLCodeWidget, ['methodContents'], 'Helios-Workspace');
  1910. $core.addMethod(
  1911. $core.method({
  1912. selector: "configureEditor",
  1913. protocol: 'accessing',
  1914. fn: function (){
  1915. var self=this;
  1916. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1917. return $core.withContext(function($ctx1) {
  1918. //>>excludeEnd("ctx");
  1919. (
  1920. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1921. $ctx1.supercall = true,
  1922. //>>excludeEnd("ctx");
  1923. ($globals.HLNavigationCodeWidget.superclass||$boot.nilAsClass).fn.prototype._configureEditor.apply($recv(self), []));
  1924. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1925. $ctx1.supercall = false;
  1926. //>>excludeEnd("ctx");;
  1927. self._contents_(self._methodContents());
  1928. return self;
  1929. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1930. }, function($ctx1) {$ctx1.fill(self,"configureEditor",{},$globals.HLNavigationCodeWidget)});
  1931. //>>excludeEnd("ctx");
  1932. },
  1933. //>>excludeStart("ide", pragmas.excludeIdeData);
  1934. args: [],
  1935. source: "configureEditor\x0a\x09super configureEditor.\x0a\x09self contents: self methodContents",
  1936. referencedClasses: [],
  1937. //>>excludeEnd("ide");
  1938. messageSends: ["configureEditor", "contents:", "methodContents"]
  1939. }),
  1940. $globals.HLNavigationCodeWidget);
  1941. $core.addMethod(
  1942. $core.method({
  1943. selector: "contents:",
  1944. protocol: 'accessing',
  1945. fn: function (aString){
  1946. var self=this;
  1947. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1948. return $core.withContext(function($ctx1) {
  1949. //>>excludeEnd("ctx");
  1950. self._methodContents_(aString);
  1951. (
  1952. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1953. $ctx1.supercall = true,
  1954. //>>excludeEnd("ctx");
  1955. ($globals.HLNavigationCodeWidget.superclass||$boot.nilAsClass).fn.prototype._contents_.apply($recv(self), [aString]));
  1956. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1957. $ctx1.supercall = false;
  1958. //>>excludeEnd("ctx");;
  1959. return self;
  1960. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1961. }, function($ctx1) {$ctx1.fill(self,"contents:",{aString:aString},$globals.HLNavigationCodeWidget)});
  1962. //>>excludeEnd("ctx");
  1963. },
  1964. //>>excludeStart("ide", pragmas.excludeIdeData);
  1965. args: ["aString"],
  1966. source: "contents: aString\x0a\x09self methodContents: aString.\x0a\x09super contents: aString",
  1967. referencedClasses: [],
  1968. //>>excludeEnd("ide");
  1969. messageSends: ["methodContents:", "contents:"]
  1970. }),
  1971. $globals.HLNavigationCodeWidget);
  1972. $core.addMethod(
  1973. $core.method({
  1974. selector: "hasModification",
  1975. protocol: 'testing',
  1976. fn: function (){
  1977. var self=this;
  1978. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1979. return $core.withContext(function($ctx1) {
  1980. //>>excludeEnd("ctx");
  1981. return $recv($recv(self._methodContents()).__eq(self._contents()))._not();
  1982. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  1983. }, function($ctx1) {$ctx1.fill(self,"hasModification",{},$globals.HLNavigationCodeWidget)});
  1984. //>>excludeEnd("ctx");
  1985. },
  1986. //>>excludeStart("ide", pragmas.excludeIdeData);
  1987. args: [],
  1988. source: "hasModification\x0a\x09^ (self methodContents = self contents) not",
  1989. referencedClasses: [],
  1990. //>>excludeEnd("ide");
  1991. messageSends: ["not", "=", "methodContents", "contents"]
  1992. }),
  1993. $globals.HLNavigationCodeWidget);
  1994. $core.addMethod(
  1995. $core.method({
  1996. selector: "methodContents",
  1997. protocol: 'accessing',
  1998. fn: function (){
  1999. var self=this;
  2000. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2001. return $core.withContext(function($ctx1) {
  2002. //>>excludeEnd("ctx");
  2003. var $1,$receiver;
  2004. $1=self["@methodContents"];
  2005. if(($receiver = $1) == null || $receiver.isNil){
  2006. return "";
  2007. } else {
  2008. return $1;
  2009. };
  2010. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2011. }, function($ctx1) {$ctx1.fill(self,"methodContents",{},$globals.HLNavigationCodeWidget)});
  2012. //>>excludeEnd("ctx");
  2013. },
  2014. //>>excludeStart("ide", pragmas.excludeIdeData);
  2015. args: [],
  2016. source: "methodContents\x0a\x09^ methodContents ifNil: [ '' ]",
  2017. referencedClasses: [],
  2018. //>>excludeEnd("ide");
  2019. messageSends: ["ifNil:"]
  2020. }),
  2021. $globals.HLNavigationCodeWidget);
  2022. $core.addMethod(
  2023. $core.method({
  2024. selector: "methodContents:",
  2025. protocol: 'accessing',
  2026. fn: function (aString){
  2027. var self=this;
  2028. var $1;
  2029. self["@methodContents"]=aString;
  2030. $1=self["@methodContents"];
  2031. return $1;
  2032. },
  2033. //>>excludeStart("ide", pragmas.excludeIdeData);
  2034. args: ["aString"],
  2035. source: "methodContents: aString\x0a\x09^ methodContents := aString",
  2036. referencedClasses: [],
  2037. //>>excludeEnd("ide");
  2038. messageSends: []
  2039. }),
  2040. $globals.HLNavigationCodeWidget);
  2041. $core.addMethod(
  2042. $core.method({
  2043. selector: "previous",
  2044. protocol: 'accessing',
  2045. fn: function (){
  2046. var self=this;
  2047. return self;
  2048. },
  2049. //>>excludeStart("ide", pragmas.excludeIdeData);
  2050. args: [],
  2051. source: "previous\x0a\x09\x22for browser lists widget\x22",
  2052. referencedClasses: [],
  2053. //>>excludeEnd("ide");
  2054. messageSends: []
  2055. }),
  2056. $globals.HLNavigationCodeWidget);
  2057. $core.addMethod(
  2058. $core.method({
  2059. selector: "previous:",
  2060. protocol: 'accessing',
  2061. fn: function (aWidget){
  2062. var self=this;
  2063. return self;
  2064. },
  2065. //>>excludeStart("ide", pragmas.excludeIdeData);
  2066. args: ["aWidget"],
  2067. source: "previous: aWidget\x0a\x09\x22for browser lists widget\x22",
  2068. referencedClasses: [],
  2069. //>>excludeEnd("ide");
  2070. messageSends: []
  2071. }),
  2072. $globals.HLNavigationCodeWidget);
  2073. $core.addMethod(
  2074. $core.method({
  2075. selector: "canBeOpenAsTab",
  2076. protocol: 'testing',
  2077. fn: function (){
  2078. var self=this;
  2079. return false;
  2080. },
  2081. //>>excludeStart("ide", pragmas.excludeIdeData);
  2082. args: [],
  2083. source: "canBeOpenAsTab\x0a\x09^ false",
  2084. referencedClasses: [],
  2085. //>>excludeEnd("ide");
  2086. messageSends: []
  2087. }),
  2088. $globals.HLNavigationCodeWidget.klass);
  2089. $core.addMethod(
  2090. $core.method({
  2091. selector: "on:",
  2092. protocol: 'instance creation',
  2093. fn: function (aBrowserModel){
  2094. var self=this;
  2095. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2096. return $core.withContext(function($ctx1) {
  2097. //>>excludeEnd("ctx");
  2098. var $1;
  2099. $1=self._new();
  2100. $recv($1)._browserModel_(aBrowserModel);
  2101. return $recv($1)._yourself();
  2102. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2103. }, function($ctx1) {$ctx1.fill(self,"on:",{aBrowserModel:aBrowserModel},$globals.HLNavigationCodeWidget.klass)});
  2104. //>>excludeEnd("ctx");
  2105. },
  2106. //>>excludeStart("ide", pragmas.excludeIdeData);
  2107. args: ["aBrowserModel"],
  2108. source: "on: aBrowserModel\x0a\x09^ self new\x0a\x09\x09browserModel: aBrowserModel;\x0a\x09\x09yourself",
  2109. referencedClasses: [],
  2110. //>>excludeEnd("ide");
  2111. messageSends: ["browserModel:", "new", "yourself"]
  2112. }),
  2113. $globals.HLNavigationCodeWidget.klass);
  2114. $core.addClass('HLBrowserCodeWidget', $globals.HLNavigationCodeWidget, ['browserModel'], 'Helios-Workspace');
  2115. $core.addMethod(
  2116. $core.method({
  2117. selector: "browserModel",
  2118. protocol: 'accessing',
  2119. fn: function (){
  2120. var self=this;
  2121. return self["@browserModel"];
  2122. },
  2123. //>>excludeStart("ide", pragmas.excludeIdeData);
  2124. args: [],
  2125. source: "browserModel\x0a\x09^ browserModel",
  2126. referencedClasses: [],
  2127. //>>excludeEnd("ide");
  2128. messageSends: []
  2129. }),
  2130. $globals.HLBrowserCodeWidget);
  2131. $core.addMethod(
  2132. $core.method({
  2133. selector: "browserModel:",
  2134. protocol: 'accessing',
  2135. fn: function (aBrowserModel){
  2136. var self=this;
  2137. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2138. return $core.withContext(function($ctx1) {
  2139. //>>excludeEnd("ctx");
  2140. self["@browserModel"]=aBrowserModel;
  2141. self._observeSystem();
  2142. self._observeBrowserModel();
  2143. return self;
  2144. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2145. }, function($ctx1) {$ctx1.fill(self,"browserModel:",{aBrowserModel:aBrowserModel},$globals.HLBrowserCodeWidget)});
  2146. //>>excludeEnd("ctx");
  2147. },
  2148. //>>excludeStart("ide", pragmas.excludeIdeData);
  2149. args: ["aBrowserModel"],
  2150. source: "browserModel: aBrowserModel\x0a\x09browserModel := aBrowserModel.\x0a\x09self \x0a\x09\x09observeSystem;\x0a\x09\x09observeBrowserModel",
  2151. referencedClasses: [],
  2152. //>>excludeEnd("ide");
  2153. messageSends: ["observeSystem", "observeBrowserModel"]
  2154. }),
  2155. $globals.HLBrowserCodeWidget);
  2156. $core.addMethod(
  2157. $core.method({
  2158. selector: "observeBrowserModel",
  2159. protocol: 'actions',
  2160. fn: function (){
  2161. var self=this;
  2162. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2163. return $core.withContext(function($ctx1) {
  2164. //>>excludeEnd("ctx");
  2165. var $1;
  2166. $1=$recv(self._browserModel())._announcer();
  2167. $recv($1)._on_send_to_($globals.HLSaveSourceCode,"onSaveIt",self);
  2168. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2169. $ctx1.sendIdx["on:send:to:"]=1;
  2170. //>>excludeEnd("ctx");
  2171. $recv($1)._on_send_to_($globals.HLShowInstanceToggled,"onShowInstanceToggled",self);
  2172. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2173. $ctx1.sendIdx["on:send:to:"]=2;
  2174. //>>excludeEnd("ctx");
  2175. $recv($1)._on_send_to_($globals.HLSourceCodeSaved,"onSourceCodeSaved",self);
  2176. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2177. $ctx1.sendIdx["on:send:to:"]=3;
  2178. //>>excludeEnd("ctx");
  2179. $recv($1)._on_send_to_($globals.HLAboutToChange,"onBrowserAboutToChange:",self);
  2180. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2181. $ctx1.sendIdx["on:send:to:"]=4;
  2182. //>>excludeEnd("ctx");
  2183. $recv($1)._on_send_to_($globals.HLParseErrorRaised,"onParseError:",self);
  2184. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2185. $ctx1.sendIdx["on:send:to:"]=5;
  2186. //>>excludeEnd("ctx");
  2187. $recv($1)._on_send_to_($globals.HLCompileErrorRaised,"onCompileError:",self);
  2188. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2189. $ctx1.sendIdx["on:send:to:"]=6;
  2190. //>>excludeEnd("ctx");
  2191. $recv($1)._on_send_to_($globals.HLUnknownVariableErrorRaised,"onUnknownVariableError:",self);
  2192. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2193. $ctx1.sendIdx["on:send:to:"]=7;
  2194. //>>excludeEnd("ctx");
  2195. $recv($1)._on_send_to_($globals.HLInstVarAdded,"onInstVarAdded",self);
  2196. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2197. $ctx1.sendIdx["on:send:to:"]=8;
  2198. //>>excludeEnd("ctx");
  2199. $recv($1)._on_send_to_($globals.HLMethodSelected,"onMethodSelected:",self);
  2200. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2201. $ctx1.sendIdx["on:send:to:"]=9;
  2202. //>>excludeEnd("ctx");
  2203. $recv($1)._on_send_to_($globals.HLClassSelected,"onClassSelected:",self);
  2204. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2205. $ctx1.sendIdx["on:send:to:"]=10;
  2206. //>>excludeEnd("ctx");
  2207. $recv($1)._on_send_to_($globals.HLPackageSelected,"onPackageSelected:",self);
  2208. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2209. $ctx1.sendIdx["on:send:to:"]=11;
  2210. //>>excludeEnd("ctx");
  2211. $recv($1)._on_send_to_($globals.HLProtocolSelected,"onProtocolSelected:",self);
  2212. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2213. $ctx1.sendIdx["on:send:to:"]=12;
  2214. //>>excludeEnd("ctx");
  2215. $recv($1)._on_send_to_($globals.HLSourceCodeFocusRequested,"onSourceCodeFocusRequested",self);
  2216. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2217. $ctx1.sendIdx["on:send:to:"]=13;
  2218. //>>excludeEnd("ctx");
  2219. $recv($1)._on_send_to_($globals.HLShowTemplate,"onShowTemplate:",self);
  2220. return self;
  2221. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2222. }, function($ctx1) {$ctx1.fill(self,"observeBrowserModel",{},$globals.HLBrowserCodeWidget)});
  2223. //>>excludeEnd("ctx");
  2224. },
  2225. //>>excludeStart("ide", pragmas.excludeIdeData);
  2226. args: [],
  2227. source: "observeBrowserModel\x0a\x09self browserModel announcer\x0a\x09\x09on: HLSaveSourceCode\x0a\x09\x09send: #onSaveIt\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLShowInstanceToggled\x0a\x09\x09send: #onShowInstanceToggled\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLSourceCodeSaved\x0a\x09\x09send: #onSourceCodeSaved\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLAboutToChange\x0a\x09\x09send: #onBrowserAboutToChange:\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLParseErrorRaised\x0a\x09\x09send: #onParseError:\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLCompileErrorRaised\x0a\x09\x09send: #onCompileError:\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLUnknownVariableErrorRaised\x0a\x09\x09send: #onUnknownVariableError:\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLInstVarAdded \x0a\x09\x09send: #onInstVarAdded\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLMethodSelected \x0a\x09\x09send: #onMethodSelected:\x0a\x09\x09to: self;\x0a\x09\x09\x0a \x09on: HLClassSelected \x0a\x09\x09send: #onClassSelected:\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLPackageSelected \x0a\x09\x09send: #onPackageSelected:\x0a\x09\x09to: self;\x0a\x09\x09\x0a \x09on: HLProtocolSelected \x0a\x09\x09send: #onProtocolSelected: \x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLSourceCodeFocusRequested \x0a\x09\x09send: #onSourceCodeFocusRequested\x0a\x09\x09to: self;\x0a\x09\x09\x0a\x09\x09on: HLShowTemplate\x0a\x09\x09send: #onShowTemplate:\x0a\x09\x09to: self",
  2228. referencedClasses: ["HLSaveSourceCode", "HLShowInstanceToggled", "HLSourceCodeSaved", "HLAboutToChange", "HLParseErrorRaised", "HLCompileErrorRaised", "HLUnknownVariableErrorRaised", "HLInstVarAdded", "HLMethodSelected", "HLClassSelected", "HLPackageSelected", "HLProtocolSelected", "HLSourceCodeFocusRequested", "HLShowTemplate"],
  2229. //>>excludeEnd("ide");
  2230. messageSends: ["on:send:to:", "announcer", "browserModel"]
  2231. }),
  2232. $globals.HLBrowserCodeWidget);
  2233. $core.addMethod(
  2234. $core.method({
  2235. selector: "observeSystem",
  2236. protocol: 'actions',
  2237. fn: function (){
  2238. var self=this;
  2239. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2240. return $core.withContext(function($ctx1) {
  2241. //>>excludeEnd("ctx");
  2242. $recv($recv(self._browserModel())._systemAnnouncer())._on_send_to_($globals.MethodModified,"onMethodModified:",self);
  2243. return self;
  2244. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2245. }, function($ctx1) {$ctx1.fill(self,"observeSystem",{},$globals.HLBrowserCodeWidget)});
  2246. //>>excludeEnd("ctx");
  2247. },
  2248. //>>excludeStart("ide", pragmas.excludeIdeData);
  2249. args: [],
  2250. source: "observeSystem\x0a\x09self browserModel systemAnnouncer\x0a \x09on: MethodModified\x0a send: #onMethodModified:\x0a\x09\x09to: self",
  2251. referencedClasses: ["MethodModified"],
  2252. //>>excludeEnd("ide");
  2253. messageSends: ["on:send:to:", "systemAnnouncer", "browserModel"]
  2254. }),
  2255. $globals.HLBrowserCodeWidget);
  2256. $core.addMethod(
  2257. $core.method({
  2258. selector: "onBrowserAboutToChange:",
  2259. protocol: 'reactions',
  2260. fn: function (anAnnouncement){
  2261. var self=this;
  2262. var block;
  2263. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2264. return $core.withContext(function($ctx1) {
  2265. //>>excludeEnd("ctx");
  2266. var $1;
  2267. block=$recv(anAnnouncement)._actionBlock();
  2268. $1=self._hasModification();
  2269. if($core.assert($1)){
  2270. self._confirm_ifTrue_("Changes have not been saved. Do you want to discard these changes?",(function(){
  2271. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2272. return $core.withContext(function($ctx2) {
  2273. //>>excludeEnd("ctx");
  2274. self._methodContents_(self._contents());
  2275. return $recv(block)._value();
  2276. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2277. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  2278. //>>excludeEnd("ctx");
  2279. }));
  2280. $recv($globals.HLChangeForbidden)._signal();
  2281. };
  2282. return self;
  2283. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2284. }, function($ctx1) {$ctx1.fill(self,"onBrowserAboutToChange:",{anAnnouncement:anAnnouncement,block:block},$globals.HLBrowserCodeWidget)});
  2285. //>>excludeEnd("ctx");
  2286. },
  2287. //>>excludeStart("ide", pragmas.excludeIdeData);
  2288. args: ["anAnnouncement"],
  2289. source: "onBrowserAboutToChange: anAnnouncement\x0a\x09| block |\x0a\x09\x0a\x09block := anAnnouncement actionBlock.\x0a\x09\x0a\x09self hasModification\x0a\x09\x09ifTrue: [\x0a\x09\x09\x09self \x0a\x09\x09\x09\x09confirm: 'Changes have not been saved. Do you want to discard these changes?' \x0a\x09\x09\x09\x09ifTrue: [\x0a\x09\x09\x09\x09\x09\x22Don't ask twice\x22\x0a\x09\x09\x09\x09\x09self methodContents: self contents.\x0a\x09\x09\x09\x09\x09block value ].\x0a\x09\x09\x09\x0a\x09\x09\x09\x0a\x09\x09\x09HLChangeForbidden signal ]",
  2290. referencedClasses: ["HLChangeForbidden"],
  2291. //>>excludeEnd("ide");
  2292. messageSends: ["actionBlock", "ifTrue:", "hasModification", "confirm:ifTrue:", "methodContents:", "contents", "value", "signal"]
  2293. }),
  2294. $globals.HLBrowserCodeWidget);
  2295. $core.addMethod(
  2296. $core.method({
  2297. selector: "onClassSelected:",
  2298. protocol: 'reactions',
  2299. fn: function (anAnnouncement){
  2300. var self=this;
  2301. var class_;
  2302. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2303. return $core.withContext(function($ctx1) {
  2304. //>>excludeEnd("ctx");
  2305. var $1,$2,$receiver;
  2306. class_=$recv(anAnnouncement)._item();
  2307. $1=class_;
  2308. if(($receiver = $1) == null || $receiver.isNil){
  2309. $2=self._contents_("");
  2310. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2311. $ctx1.sendIdx["contents:"]=1;
  2312. //>>excludeEnd("ctx");
  2313. return $2;
  2314. } else {
  2315. $1;
  2316. };
  2317. self._contents_($recv(class_)._definition());
  2318. return self;
  2319. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2320. }, function($ctx1) {$ctx1.fill(self,"onClassSelected:",{anAnnouncement:anAnnouncement,class_:class_},$globals.HLBrowserCodeWidget)});
  2321. //>>excludeEnd("ctx");
  2322. },
  2323. //>>excludeStart("ide", pragmas.excludeIdeData);
  2324. args: ["anAnnouncement"],
  2325. source: "onClassSelected: anAnnouncement\x0a\x09| class |\x0a\x09\x0a\x09class:= anAnnouncement item.\x0a\x09\x0a\x09class ifNil: [ ^ self contents: '' ].\x0a\x09self contents: class definition",
  2326. referencedClasses: [],
  2327. //>>excludeEnd("ide");
  2328. messageSends: ["item", "ifNil:", "contents:", "definition"]
  2329. }),
  2330. $globals.HLBrowserCodeWidget);
  2331. $core.addMethod(
  2332. $core.method({
  2333. selector: "onCompileError:",
  2334. protocol: 'reactions',
  2335. fn: function (anAnnouncement){
  2336. var self=this;
  2337. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2338. return $core.withContext(function($ctx1) {
  2339. //>>excludeEnd("ctx");
  2340. $recv($globals.Terminal)._alert_($recv($recv(anAnnouncement)._error())._messageText());
  2341. return self;
  2342. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2343. }, function($ctx1) {$ctx1.fill(self,"onCompileError:",{anAnnouncement:anAnnouncement},$globals.HLBrowserCodeWidget)});
  2344. //>>excludeEnd("ctx");
  2345. },
  2346. //>>excludeStart("ide", pragmas.excludeIdeData);
  2347. args: ["anAnnouncement"],
  2348. source: "onCompileError: anAnnouncement\x0a\x09Terminal alert: anAnnouncement error messageText",
  2349. referencedClasses: ["Terminal"],
  2350. //>>excludeEnd("ide");
  2351. messageSends: ["alert:", "messageText", "error"]
  2352. }),
  2353. $globals.HLBrowserCodeWidget);
  2354. $core.addMethod(
  2355. $core.method({
  2356. selector: "onInstVarAdded",
  2357. protocol: 'reactions',
  2358. fn: function (){
  2359. var self=this;
  2360. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2361. return $core.withContext(function($ctx1) {
  2362. //>>excludeEnd("ctx");
  2363. $recv(self._browserModel())._save_(self._contents());
  2364. return self;
  2365. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2366. }, function($ctx1) {$ctx1.fill(self,"onInstVarAdded",{},$globals.HLBrowserCodeWidget)});
  2367. //>>excludeEnd("ctx");
  2368. },
  2369. //>>excludeStart("ide", pragmas.excludeIdeData);
  2370. args: [],
  2371. source: "onInstVarAdded\x0a\x09self browserModel save: self contents",
  2372. referencedClasses: [],
  2373. //>>excludeEnd("ide");
  2374. messageSends: ["save:", "browserModel", "contents"]
  2375. }),
  2376. $globals.HLBrowserCodeWidget);
  2377. $core.addMethod(
  2378. $core.method({
  2379. selector: "onMethodModified:",
  2380. protocol: 'reactions',
  2381. fn: function (anAnnouncement){
  2382. var self=this;
  2383. var method;
  2384. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2385. return $core.withContext(function($ctx1) {
  2386. //>>excludeEnd("ctx");
  2387. var $3,$2,$1,$5,$4,$7,$6,$receiver;
  2388. method=$recv(anAnnouncement)._method();
  2389. $3=self._browserModel();
  2390. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2391. $ctx1.sendIdx["browserModel"]=1;
  2392. //>>excludeEnd("ctx");
  2393. $2=$recv($3)._selectedClass();
  2394. $1=$recv($2).__eq($recv(method)._methodClass());
  2395. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2396. $ctx1.sendIdx["="]=1;
  2397. //>>excludeEnd("ctx");
  2398. if(!$core.assert($1)){
  2399. return self;
  2400. };
  2401. $5=self._browserModel();
  2402. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2403. $ctx1.sendIdx["browserModel"]=2;
  2404. //>>excludeEnd("ctx");
  2405. $4=$recv($5)._selectedMethod();
  2406. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2407. $ctx1.sendIdx["selectedMethod"]=1;
  2408. //>>excludeEnd("ctx");
  2409. if(($receiver = $4) == null || $receiver.isNil){
  2410. return self;
  2411. } else {
  2412. $4;
  2413. };
  2414. $7=$recv($recv(self._browserModel())._selectedMethod())._selector();
  2415. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2416. $ctx1.sendIdx["selector"]=1;
  2417. //>>excludeEnd("ctx");
  2418. $6=$recv($7).__eq($recv(method)._selector());
  2419. if(!$core.assert($6)){
  2420. return self;
  2421. };
  2422. self._refresh();
  2423. return self;
  2424. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2425. }, function($ctx1) {$ctx1.fill(self,"onMethodModified:",{anAnnouncement:anAnnouncement,method:method},$globals.HLBrowserCodeWidget)});
  2426. //>>excludeEnd("ctx");
  2427. },
  2428. //>>excludeStart("ide", pragmas.excludeIdeData);
  2429. args: ["anAnnouncement"],
  2430. source: "onMethodModified: anAnnouncement\x0a\x09| method |\x0a\x09\x0a\x09method := anAnnouncement method.\x0a\x09\x0a\x09self browserModel selectedClass = method methodClass ifFalse: [ ^ self ].\x0a\x09self browserModel selectedMethod ifNil: [ ^ self ].\x0a\x09self browserModel selectedMethod selector = method selector ifFalse: [ ^ self ].\x0a\x0a\x09self refresh",
  2431. referencedClasses: [],
  2432. //>>excludeEnd("ide");
  2433. messageSends: ["method", "ifFalse:", "=", "selectedClass", "browserModel", "methodClass", "ifNil:", "selectedMethod", "selector", "refresh"]
  2434. }),
  2435. $globals.HLBrowserCodeWidget);
  2436. $core.addMethod(
  2437. $core.method({
  2438. selector: "onMethodSelected:",
  2439. protocol: 'reactions',
  2440. fn: function (anAnnouncement){
  2441. var self=this;
  2442. var method;
  2443. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2444. return $core.withContext(function($ctx1) {
  2445. //>>excludeEnd("ctx");
  2446. var $1,$2,$receiver;
  2447. method=$recv(anAnnouncement)._item();
  2448. $1=method;
  2449. if(($receiver = $1) == null || $receiver.isNil){
  2450. $2=self._contents_("");
  2451. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2452. $ctx1.sendIdx["contents:"]=1;
  2453. //>>excludeEnd("ctx");
  2454. return $2;
  2455. } else {
  2456. $1;
  2457. };
  2458. self._contents_($recv(method)._source());
  2459. return self;
  2460. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2461. }, function($ctx1) {$ctx1.fill(self,"onMethodSelected:",{anAnnouncement:anAnnouncement,method:method},$globals.HLBrowserCodeWidget)});
  2462. //>>excludeEnd("ctx");
  2463. },
  2464. //>>excludeStart("ide", pragmas.excludeIdeData);
  2465. args: ["anAnnouncement"],
  2466. source: "onMethodSelected: anAnnouncement\x0a\x09| method |\x0a\x09\x0a\x09method := anAnnouncement item.\x0a\x09\x0a\x09method ifNil: [ ^ self contents: '' ].\x0a\x09self contents: method source",
  2467. referencedClasses: [],
  2468. //>>excludeEnd("ide");
  2469. messageSends: ["item", "ifNil:", "contents:", "source"]
  2470. }),
  2471. $globals.HLBrowserCodeWidget);
  2472. $core.addMethod(
  2473. $core.method({
  2474. selector: "onPackageSelected:",
  2475. protocol: 'reactions',
  2476. fn: function (anAnnouncement){
  2477. var self=this;
  2478. var package_;
  2479. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2480. return $core.withContext(function($ctx1) {
  2481. //>>excludeEnd("ctx");
  2482. var $1,$2,$receiver;
  2483. package_=$recv(anAnnouncement)._item();
  2484. $1=package_;
  2485. if(($receiver = $1) == null || $receiver.isNil){
  2486. $2=self._contents_("");
  2487. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2488. $ctx1.sendIdx["contents:"]=1;
  2489. //>>excludeEnd("ctx");
  2490. return $2;
  2491. } else {
  2492. $1;
  2493. };
  2494. self._contents_($recv(package_)._definition());
  2495. return self;
  2496. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2497. }, function($ctx1) {$ctx1.fill(self,"onPackageSelected:",{anAnnouncement:anAnnouncement,package_:package_},$globals.HLBrowserCodeWidget)});
  2498. //>>excludeEnd("ctx");
  2499. },
  2500. //>>excludeStart("ide", pragmas.excludeIdeData);
  2501. args: ["anAnnouncement"],
  2502. source: "onPackageSelected: anAnnouncement\x0a\x09| package |\x0a\x09\x0a\x09package := anAnnouncement item.\x0a\x09\x0a\x09package ifNil: [ ^ self contents: '' ].\x0a\x09self contents: package definition",
  2503. referencedClasses: [],
  2504. //>>excludeEnd("ide");
  2505. messageSends: ["item", "ifNil:", "contents:", "definition"]
  2506. }),
  2507. $globals.HLBrowserCodeWidget);
  2508. $core.addMethod(
  2509. $core.method({
  2510. selector: "onParseError:",
  2511. protocol: 'reactions',
  2512. fn: function (anAnnouncement){
  2513. var self=this;
  2514. var lineIndex,newContents;
  2515. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2516. return $core.withContext(function($ctx1) {
  2517. //>>excludeEnd("ctx");
  2518. var $1,$3,$2,$6,$5,$4;
  2519. lineIndex=(1);
  2520. self._contents_($recv($globals.String)._streamContents_((function(stream){
  2521. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2522. return $core.withContext(function($ctx2) {
  2523. //>>excludeEnd("ctx");
  2524. return $recv(self._contents())._linesDo_((function(each){
  2525. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2526. return $core.withContext(function($ctx3) {
  2527. //>>excludeEnd("ctx");
  2528. $1=$recv(lineIndex).__eq($recv(anAnnouncement)._line());
  2529. if($core.assert($1)){
  2530. $3=$recv(anAnnouncement)._column();
  2531. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2532. $ctx3.sendIdx["column"]=1;
  2533. //>>excludeEnd("ctx");
  2534. $2=$recv(each)._copyFrom_to_((1),$3);
  2535. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2536. $ctx3.sendIdx["copyFrom:to:"]=1;
  2537. //>>excludeEnd("ctx");
  2538. $recv(stream)._nextPutAll_($2);
  2539. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2540. $ctx3.sendIdx["nextPutAll:"]=1;
  2541. //>>excludeEnd("ctx");
  2542. $recv(stream)._nextPutAll_("<- ");
  2543. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2544. $ctx3.sendIdx["nextPutAll:"]=2;
  2545. //>>excludeEnd("ctx");
  2546. $recv(stream)._nextPutAll_($recv(anAnnouncement)._message());
  2547. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2548. $ctx3.sendIdx["nextPutAll:"]=3;
  2549. //>>excludeEnd("ctx");
  2550. $recv(stream)._nextPutAll_(" ");
  2551. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2552. $ctx3.sendIdx["nextPutAll:"]=4;
  2553. //>>excludeEnd("ctx");
  2554. $6=$recv($recv(anAnnouncement)._column()).__plus((1));
  2555. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2556. $ctx3.sendIdx["+"]=1;
  2557. //>>excludeEnd("ctx");
  2558. $5=$recv(each)._copyFrom_to_($6,$recv(each)._size());
  2559. $4=$recv(stream)._nextPutAll_($5);
  2560. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2561. $ctx3.sendIdx["nextPutAll:"]=5;
  2562. //>>excludeEnd("ctx");
  2563. $4;
  2564. } else {
  2565. $recv(stream)._nextPutAll_(each);
  2566. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2567. $ctx3.sendIdx["nextPutAll:"]=6;
  2568. //>>excludeEnd("ctx");
  2569. };
  2570. $recv(stream)._nextPutAll_($recv($globals.String)._cr());
  2571. lineIndex=$recv(lineIndex).__plus((1));
  2572. return lineIndex;
  2573. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2574. }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx2,2)});
  2575. //>>excludeEnd("ctx");
  2576. }));
  2577. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2578. }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1,1)});
  2579. //>>excludeEnd("ctx");
  2580. })));
  2581. return self;
  2582. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2583. }, function($ctx1) {$ctx1.fill(self,"onParseError:",{anAnnouncement:anAnnouncement,lineIndex:lineIndex,newContents:newContents},$globals.HLBrowserCodeWidget)});
  2584. //>>excludeEnd("ctx");
  2585. },
  2586. //>>excludeStart("ide", pragmas.excludeIdeData);
  2587. args: ["anAnnouncement"],
  2588. source: "onParseError: anAnnouncement\x0a\x09| lineIndex newContents |\x0a\x09\x0a\x09lineIndex := 1.\x0a\x09\x0a\x09self contents: (String streamContents: [ :stream |\x0a\x09\x09self contents linesDo: [ :each |\x0a\x09\x09\x09lineIndex = anAnnouncement line \x0a\x09\x09\x09\x09ifTrue: [ \x0a\x09\x09\x09\x09\x09stream \x0a\x09\x09\x09\x09\x09\x09nextPutAll: (each copyFrom: 1 to: anAnnouncement column);\x0a\x09\x09\x09\x09\x09\x09nextPutAll: '<- ';\x0a\x09\x09\x09\x09\x09\x09nextPutAll: anAnnouncement message;\x0a\x09\x09\x09\x09\x09\x09nextPutAll: ' ';\x0a\x09\x09\x09\x09\x09\x09nextPutAll: (each copyFrom: anAnnouncement column + 1 to: each size) ]\x0a\x09\x09\x09\x09ifFalse: [ stream nextPutAll: each ].\x0a\x09\x09\x09stream nextPutAll: String cr.\x0a\x09\x09\x09lineIndex := lineIndex + 1 ] ])",
  2589. referencedClasses: ["String"],
  2590. //>>excludeEnd("ide");
  2591. messageSends: ["contents:", "streamContents:", "linesDo:", "contents", "ifTrue:ifFalse:", "=", "line", "nextPutAll:", "copyFrom:to:", "column", "message", "+", "size", "cr"]
  2592. }),
  2593. $globals.HLBrowserCodeWidget);
  2594. $core.addMethod(
  2595. $core.method({
  2596. selector: "onProtocolSelected:",
  2597. protocol: 'reactions',
  2598. fn: function (anAnnouncement){
  2599. var self=this;
  2600. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2601. return $core.withContext(function($ctx1) {
  2602. //>>excludeEnd("ctx");
  2603. var $2,$1,$3,$receiver;
  2604. $2=self._browserModel();
  2605. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2606. $ctx1.sendIdx["browserModel"]=1;
  2607. //>>excludeEnd("ctx");
  2608. $1=$recv($2)._selectedClass();
  2609. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2610. $ctx1.sendIdx["selectedClass"]=1;
  2611. //>>excludeEnd("ctx");
  2612. if(($receiver = $1) == null || $receiver.isNil){
  2613. $3=self._contents_("");
  2614. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2615. $ctx1.sendIdx["contents:"]=1;
  2616. //>>excludeEnd("ctx");
  2617. return $3;
  2618. } else {
  2619. $1;
  2620. };
  2621. self._contents_($recv($recv(self._browserModel())._selectedClass())._definition());
  2622. return self;
  2623. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2624. }, function($ctx1) {$ctx1.fill(self,"onProtocolSelected:",{anAnnouncement:anAnnouncement},$globals.HLBrowserCodeWidget)});
  2625. //>>excludeEnd("ctx");
  2626. },
  2627. //>>excludeStart("ide", pragmas.excludeIdeData);
  2628. args: ["anAnnouncement"],
  2629. source: "onProtocolSelected: anAnnouncement\x0a\x09self browserModel selectedClass ifNil: [ ^ self contents: '' ].\x0a\x09self contents: self browserModel selectedClass definition",
  2630. referencedClasses: [],
  2631. //>>excludeEnd("ide");
  2632. messageSends: ["ifNil:", "selectedClass", "browserModel", "contents:", "definition"]
  2633. }),
  2634. $globals.HLBrowserCodeWidget);
  2635. $core.addMethod(
  2636. $core.method({
  2637. selector: "onSaveIt",
  2638. protocol: 'reactions',
  2639. fn: function (){
  2640. var self=this;
  2641. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2642. return $core.withContext(function($ctx1) {
  2643. //>>excludeEnd("ctx");
  2644. $recv(self._browserModel())._save_(self._contents());
  2645. return self;
  2646. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2647. }, function($ctx1) {$ctx1.fill(self,"onSaveIt",{},$globals.HLBrowserCodeWidget)});
  2648. //>>excludeEnd("ctx");
  2649. },
  2650. //>>excludeStart("ide", pragmas.excludeIdeData);
  2651. args: [],
  2652. source: "onSaveIt\x0a\x09self browserModel save: self contents",
  2653. referencedClasses: [],
  2654. //>>excludeEnd("ide");
  2655. messageSends: ["save:", "browserModel", "contents"]
  2656. }),
  2657. $globals.HLBrowserCodeWidget);
  2658. $core.addMethod(
  2659. $core.method({
  2660. selector: "onShowInstanceToggled",
  2661. protocol: 'reactions',
  2662. fn: function (){
  2663. var self=this;
  2664. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2665. return $core.withContext(function($ctx1) {
  2666. //>>excludeEnd("ctx");
  2667. var $2,$1,$3,$receiver;
  2668. $2=self._browserModel();
  2669. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2670. $ctx1.sendIdx["browserModel"]=1;
  2671. //>>excludeEnd("ctx");
  2672. $1=$recv($2)._selectedClass();
  2673. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2674. $ctx1.sendIdx["selectedClass"]=1;
  2675. //>>excludeEnd("ctx");
  2676. if(($receiver = $1) == null || $receiver.isNil){
  2677. $3=self._contents_("");
  2678. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2679. $ctx1.sendIdx["contents:"]=1;
  2680. //>>excludeEnd("ctx");
  2681. return $3;
  2682. } else {
  2683. $1;
  2684. };
  2685. self._contents_($recv($recv(self._browserModel())._selectedClass())._definition());
  2686. return self;
  2687. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2688. }, function($ctx1) {$ctx1.fill(self,"onShowInstanceToggled",{},$globals.HLBrowserCodeWidget)});
  2689. //>>excludeEnd("ctx");
  2690. },
  2691. //>>excludeStart("ide", pragmas.excludeIdeData);
  2692. args: [],
  2693. source: "onShowInstanceToggled\x0a\x09self browserModel selectedClass ifNil: [ ^ self contents: '' ].\x0a \x0a\x09self contents: self browserModel selectedClass definition",
  2694. referencedClasses: [],
  2695. //>>excludeEnd("ide");
  2696. messageSends: ["ifNil:", "selectedClass", "browserModel", "contents:", "definition"]
  2697. }),
  2698. $globals.HLBrowserCodeWidget);
  2699. $core.addMethod(
  2700. $core.method({
  2701. selector: "onShowTemplate:",
  2702. protocol: 'reactions',
  2703. fn: function (anAnnouncement){
  2704. var self=this;
  2705. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2706. return $core.withContext(function($ctx1) {
  2707. //>>excludeEnd("ctx");
  2708. self._contents_($recv(anAnnouncement)._template());
  2709. return self;
  2710. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2711. }, function($ctx1) {$ctx1.fill(self,"onShowTemplate:",{anAnnouncement:anAnnouncement},$globals.HLBrowserCodeWidget)});
  2712. //>>excludeEnd("ctx");
  2713. },
  2714. //>>excludeStart("ide", pragmas.excludeIdeData);
  2715. args: ["anAnnouncement"],
  2716. source: "onShowTemplate: anAnnouncement\x0a\x09self contents: anAnnouncement template",
  2717. referencedClasses: [],
  2718. //>>excludeEnd("ide");
  2719. messageSends: ["contents:", "template"]
  2720. }),
  2721. $globals.HLBrowserCodeWidget);
  2722. $core.addMethod(
  2723. $core.method({
  2724. selector: "onSourceCodeFocusRequested",
  2725. protocol: 'reactions',
  2726. fn: function (){
  2727. var self=this;
  2728. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2729. return $core.withContext(function($ctx1) {
  2730. //>>excludeEnd("ctx");
  2731. self._focus();
  2732. return self;
  2733. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2734. }, function($ctx1) {$ctx1.fill(self,"onSourceCodeFocusRequested",{},$globals.HLBrowserCodeWidget)});
  2735. //>>excludeEnd("ctx");
  2736. },
  2737. //>>excludeStart("ide", pragmas.excludeIdeData);
  2738. args: [],
  2739. source: "onSourceCodeFocusRequested\x0a\x09self focus",
  2740. referencedClasses: [],
  2741. //>>excludeEnd("ide");
  2742. messageSends: ["focus"]
  2743. }),
  2744. $globals.HLBrowserCodeWidget);
  2745. $core.addMethod(
  2746. $core.method({
  2747. selector: "onSourceCodeSaved",
  2748. protocol: 'reactions',
  2749. fn: function (){
  2750. var self=this;
  2751. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2752. return $core.withContext(function($ctx1) {
  2753. //>>excludeEnd("ctx");
  2754. self._methodContents_(self._contents());
  2755. self._updateState();
  2756. return self;
  2757. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2758. }, function($ctx1) {$ctx1.fill(self,"onSourceCodeSaved",{},$globals.HLBrowserCodeWidget)});
  2759. //>>excludeEnd("ctx");
  2760. },
  2761. //>>excludeStart("ide", pragmas.excludeIdeData);
  2762. args: [],
  2763. source: "onSourceCodeSaved\x0a\x09self methodContents: self contents.\x0a\x09self updateState",
  2764. referencedClasses: [],
  2765. //>>excludeEnd("ide");
  2766. messageSends: ["methodContents:", "contents", "updateState"]
  2767. }),
  2768. $globals.HLBrowserCodeWidget);
  2769. $core.addMethod(
  2770. $core.method({
  2771. selector: "onUnknownVariableError:",
  2772. protocol: 'reactions',
  2773. fn: function (anAnnouncement){
  2774. var self=this;
  2775. var error;
  2776. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2777. return $core.withContext(function($ctx1) {
  2778. //>>excludeEnd("ctx");
  2779. error=$recv(anAnnouncement)._error();
  2780. self._confirm_ifTrue_($recv($globals.String)._streamContents_((function(stream){
  2781. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2782. return $core.withContext(function($ctx2) {
  2783. //>>excludeEnd("ctx");
  2784. $recv(stream)._nextPutAll_($recv(error)._messageText());
  2785. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2786. $ctx2.sendIdx["nextPutAll:"]=1;
  2787. //>>excludeEnd("ctx");
  2788. $recv(stream)._nextPutAll_($recv($globals.String)._cr());
  2789. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2790. $ctx2.sendIdx["nextPutAll:"]=2;
  2791. //>>excludeEnd("ctx");
  2792. return $recv(stream)._nextPutAll_("Would you like to define an instance variable?");
  2793. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2794. }, function($ctx2) {$ctx2.fillBlock({stream:stream},$ctx1,1)});
  2795. //>>excludeEnd("ctx");
  2796. })),(function(){
  2797. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2798. return $core.withContext(function($ctx2) {
  2799. //>>excludeEnd("ctx");
  2800. return $recv(self._browserModel())._addInstVarNamed_($recv(error)._variableName());
  2801. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2802. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  2803. //>>excludeEnd("ctx");
  2804. }));
  2805. return self;
  2806. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2807. }, function($ctx1) {$ctx1.fill(self,"onUnknownVariableError:",{anAnnouncement:anAnnouncement,error:error},$globals.HLBrowserCodeWidget)});
  2808. //>>excludeEnd("ctx");
  2809. },
  2810. //>>excludeStart("ide", pragmas.excludeIdeData);
  2811. args: ["anAnnouncement"],
  2812. source: "onUnknownVariableError: anAnnouncement\x0a\x09| error |\x0a\x09\x0a\x09error := anAnnouncement error.\x0a\x09\x0a\x09self \x0a\x09\x09confirm: (String streamContents: [ :stream |\x0a\x09\x09\x09stream \x0a\x09\x09\x09\x09nextPutAll: error messageText;\x0a\x09\x09\x09\x09nextPutAll: String cr;\x0a\x09\x09\x09\x09nextPutAll: 'Would you like to define an instance variable?' ])\x0a\x09\x09ifTrue: [\x0a\x09\x09\x09self browserModel addInstVarNamed: error variableName ]",
  2813. referencedClasses: ["String"],
  2814. //>>excludeEnd("ide");
  2815. messageSends: ["error", "confirm:ifTrue:", "streamContents:", "nextPutAll:", "messageText", "cr", "addInstVarNamed:", "browserModel", "variableName"]
  2816. }),
  2817. $globals.HLBrowserCodeWidget);
  2818. $core.addMethod(
  2819. $core.method({
  2820. selector: "refresh",
  2821. protocol: 'actions',
  2822. fn: function (){
  2823. var self=this;
  2824. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2825. return $core.withContext(function($ctx1) {
  2826. //>>excludeEnd("ctx");
  2827. var $1,$2;
  2828. $1=self._hasModification();
  2829. if($core.assert($1)){
  2830. return self;
  2831. };
  2832. $2=self._hasFocus();
  2833. if($core.assert($2)){
  2834. return self;
  2835. };
  2836. self._contents_($recv($recv(self._browserModel())._selectedMethod())._source());
  2837. return self;
  2838. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2839. }, function($ctx1) {$ctx1.fill(self,"refresh",{},$globals.HLBrowserCodeWidget)});
  2840. //>>excludeEnd("ctx");
  2841. },
  2842. //>>excludeStart("ide", pragmas.excludeIdeData);
  2843. args: [],
  2844. source: "refresh\x0a\x09self hasModification ifTrue: [ ^ self ].\x0a self hasFocus ifTrue: [ ^ self ].\x0a\x0a\x09self contents: self browserModel selectedMethod source",
  2845. referencedClasses: [],
  2846. //>>excludeEnd("ide");
  2847. messageSends: ["ifTrue:", "hasModification", "hasFocus", "contents:", "source", "selectedMethod", "browserModel"]
  2848. }),
  2849. $globals.HLBrowserCodeWidget);
  2850. $core.addMethod(
  2851. $core.method({
  2852. selector: "renderButtonsOn:",
  2853. protocol: 'actions',
  2854. fn: function (html){
  2855. var self=this;
  2856. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2857. return $core.withContext(function($ctx1) {
  2858. //>>excludeEnd("ctx");
  2859. var $1;
  2860. $1=$recv(html)._button();
  2861. $recv($1)._class_("button");
  2862. $recv($1)._with_("SaveIt");
  2863. $recv($1)._onClick_((function(){
  2864. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2865. return $core.withContext(function($ctx2) {
  2866. //>>excludeEnd("ctx");
  2867. return self._saveIt();
  2868. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2869. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  2870. //>>excludeEnd("ctx");
  2871. }));
  2872. (
  2873. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2874. $ctx1.supercall = true,
  2875. //>>excludeEnd("ctx");
  2876. ($globals.HLBrowserCodeWidget.superclass||$boot.nilAsClass).fn.prototype._renderButtonsOn_.apply($recv(self), [html]));
  2877. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2878. $ctx1.supercall = false;
  2879. //>>excludeEnd("ctx");;
  2880. return self;
  2881. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2882. }, function($ctx1) {$ctx1.fill(self,"renderButtonsOn:",{html:html},$globals.HLBrowserCodeWidget)});
  2883. //>>excludeEnd("ctx");
  2884. },
  2885. //>>excludeStart("ide", pragmas.excludeIdeData);
  2886. args: ["html"],
  2887. source: "renderButtonsOn: html\x0a\x09html button \x0a\x09\x09class: 'button';\x0a\x09\x09with: 'SaveIt';\x0a\x09\x09onClick: [ self saveIt ].\x0a\x09super renderButtonsOn: html",
  2888. referencedClasses: [],
  2889. //>>excludeEnd("ide");
  2890. messageSends: ["class:", "button", "with:", "onClick:", "saveIt", "renderButtonsOn:"]
  2891. }),
  2892. $globals.HLBrowserCodeWidget);
  2893. $core.addMethod(
  2894. $core.method({
  2895. selector: "saveIt",
  2896. protocol: 'actions',
  2897. fn: function (){
  2898. var self=this;
  2899. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2900. return $core.withContext(function($ctx1) {
  2901. //>>excludeEnd("ctx");
  2902. $recv(self._browserModel())._saveSourceCode();
  2903. return self;
  2904. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2905. }, function($ctx1) {$ctx1.fill(self,"saveIt",{},$globals.HLBrowserCodeWidget)});
  2906. //>>excludeEnd("ctx");
  2907. },
  2908. //>>excludeStart("ide", pragmas.excludeIdeData);
  2909. args: [],
  2910. source: "saveIt\x0a\x09self browserModel saveSourceCode",
  2911. referencedClasses: [],
  2912. //>>excludeEnd("ide");
  2913. messageSends: ["saveSourceCode", "browserModel"]
  2914. }),
  2915. $globals.HLBrowserCodeWidget);
  2916. $core.addMethod(
  2917. $core.method({
  2918. selector: "unregister",
  2919. protocol: 'actions',
  2920. fn: function (){
  2921. var self=this;
  2922. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2923. return $core.withContext(function($ctx1) {
  2924. //>>excludeEnd("ctx");
  2925. var $2,$1;
  2926. (
  2927. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2928. $ctx1.supercall = true,
  2929. //>>excludeEnd("ctx");
  2930. ($globals.HLBrowserCodeWidget.superclass||$boot.nilAsClass).fn.prototype._unregsiter.apply($recv(self), []));
  2931. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2932. $ctx1.supercall = false;
  2933. //>>excludeEnd("ctx");;
  2934. $2=self._browserModel();
  2935. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2936. $ctx1.sendIdx["browserModel"]=1;
  2937. //>>excludeEnd("ctx");
  2938. $1=$recv($2)._announcer();
  2939. $recv($1)._unsubscribe_(self);
  2940. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2941. $ctx1.sendIdx["unsubscribe:"]=1;
  2942. //>>excludeEnd("ctx");
  2943. $recv($recv(self._browserModel())._systemAnnouncer())._unsubscribe_(self);
  2944. return self;
  2945. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2946. }, function($ctx1) {$ctx1.fill(self,"unregister",{},$globals.HLBrowserCodeWidget)});
  2947. //>>excludeEnd("ctx");
  2948. },
  2949. //>>excludeStart("ide", pragmas.excludeIdeData);
  2950. args: [],
  2951. source: "unregister\x0a\x09super unregsiter.\x0a\x09\x0a\x09self browserModel announcer unsubscribe: self.\x0a\x09self browserModel systemAnnouncer unsubscribe: self",
  2952. referencedClasses: [],
  2953. //>>excludeEnd("ide");
  2954. messageSends: ["unregsiter", "unsubscribe:", "announcer", "browserModel", "systemAnnouncer"]
  2955. }),
  2956. $globals.HLBrowserCodeWidget);
  2957. $core.addMethod(
  2958. $core.method({
  2959. selector: "canBeOpenAsTab",
  2960. protocol: 'testing',
  2961. fn: function (){
  2962. var self=this;
  2963. return false;
  2964. },
  2965. //>>excludeStart("ide", pragmas.excludeIdeData);
  2966. args: [],
  2967. source: "canBeOpenAsTab\x0a\x09^ false",
  2968. referencedClasses: [],
  2969. //>>excludeEnd("ide");
  2970. messageSends: []
  2971. }),
  2972. $globals.HLBrowserCodeWidget.klass);
  2973. $core.addMethod(
  2974. $core.method({
  2975. selector: "on:",
  2976. protocol: 'instance creation',
  2977. fn: function (aBrowserModel){
  2978. var self=this;
  2979. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2980. return $core.withContext(function($ctx1) {
  2981. //>>excludeEnd("ctx");
  2982. var $1;
  2983. $1=self._new();
  2984. $recv($1)._browserModel_(aBrowserModel);
  2985. return $recv($1)._yourself();
  2986. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  2987. }, function($ctx1) {$ctx1.fill(self,"on:",{aBrowserModel:aBrowserModel},$globals.HLBrowserCodeWidget.klass)});
  2988. //>>excludeEnd("ctx");
  2989. },
  2990. //>>excludeStart("ide", pragmas.excludeIdeData);
  2991. args: ["aBrowserModel"],
  2992. source: "on: aBrowserModel\x0a\x09^ self new\x0a\x09\x09browserModel: aBrowserModel;\x0a\x09\x09yourself",
  2993. referencedClasses: [],
  2994. //>>excludeEnd("ide");
  2995. messageSends: ["browserModel:", "new", "yourself"]
  2996. }),
  2997. $globals.HLBrowserCodeWidget.klass);
  2998. $core.addClass('HLWorkspace', $globals.HLWidget, ['codeWidget', 'transcript'], 'Helios-Workspace');
  2999. $core.addMethod(
  3000. $core.method({
  3001. selector: "canHaveFocus",
  3002. protocol: 'testing',
  3003. fn: function (){
  3004. var self=this;
  3005. return true;
  3006. },
  3007. //>>excludeStart("ide", pragmas.excludeIdeData);
  3008. args: [],
  3009. source: "canHaveFocus\x0a\x09^ true",
  3010. referencedClasses: [],
  3011. //>>excludeEnd("ide");
  3012. messageSends: []
  3013. }),
  3014. $globals.HLWorkspace);
  3015. $core.addMethod(
  3016. $core.method({
  3017. selector: "codeWidget",
  3018. protocol: 'accessing',
  3019. fn: function (){
  3020. var self=this;
  3021. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3022. return $core.withContext(function($ctx1) {
  3023. //>>excludeEnd("ctx");
  3024. var $1,$receiver;
  3025. $1=self["@codeWidget"];
  3026. if(($receiver = $1) == null || $receiver.isNil){
  3027. self["@codeWidget"]=$recv($globals.HLCodeWidget)._new();
  3028. return self["@codeWidget"];
  3029. } else {
  3030. return $1;
  3031. };
  3032. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3033. }, function($ctx1) {$ctx1.fill(self,"codeWidget",{},$globals.HLWorkspace)});
  3034. //>>excludeEnd("ctx");
  3035. },
  3036. //>>excludeStart("ide", pragmas.excludeIdeData);
  3037. args: [],
  3038. source: "codeWidget\x0a\x09^ codeWidget ifNil: [ codeWidget := HLCodeWidget new ]",
  3039. referencedClasses: ["HLCodeWidget"],
  3040. //>>excludeEnd("ide");
  3041. messageSends: ["ifNil:", "new"]
  3042. }),
  3043. $globals.HLWorkspace);
  3044. $core.addMethod(
  3045. $core.method({
  3046. selector: "focus",
  3047. protocol: 'actions',
  3048. fn: function (){
  3049. var self=this;
  3050. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3051. return $core.withContext(function($ctx1) {
  3052. //>>excludeEnd("ctx");
  3053. return $recv(self._codeWidget())._focus();
  3054. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3055. }, function($ctx1) {$ctx1.fill(self,"focus",{},$globals.HLWorkspace)});
  3056. //>>excludeEnd("ctx");
  3057. },
  3058. //>>excludeStart("ide", pragmas.excludeIdeData);
  3059. args: [],
  3060. source: "focus\x0a\x09^ self codeWidget focus",
  3061. referencedClasses: [],
  3062. //>>excludeEnd("ide");
  3063. messageSends: ["focus", "codeWidget"]
  3064. }),
  3065. $globals.HLWorkspace);
  3066. $core.addMethod(
  3067. $core.method({
  3068. selector: "renderContentOn:",
  3069. protocol: 'rendering',
  3070. fn: function (html){
  3071. var self=this;
  3072. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3073. return $core.withContext(function($ctx1) {
  3074. //>>excludeEnd("ctx");
  3075. $recv(html)._with_($recv($globals.HLContainer)._with_($recv($globals.HLHorizontalSplitter)._with_with_(self._codeWidget(),(function(canvas){
  3076. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3077. return $core.withContext(function($ctx2) {
  3078. //>>excludeEnd("ctx");
  3079. return self._renderTranscriptOn_(canvas);
  3080. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3081. }, function($ctx2) {$ctx2.fillBlock({canvas:canvas},$ctx1,1)});
  3082. //>>excludeEnd("ctx");
  3083. }))));
  3084. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3085. $ctx1.sendIdx["with:"]=1;
  3086. //>>excludeEnd("ctx");
  3087. return self;
  3088. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3089. }, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},$globals.HLWorkspace)});
  3090. //>>excludeEnd("ctx");
  3091. },
  3092. //>>excludeStart("ide", pragmas.excludeIdeData);
  3093. args: ["html"],
  3094. source: "renderContentOn: html\x0a\x09html with: (HLContainer with: (HLHorizontalSplitter\x0a\x09\x09with: self codeWidget\x0a\x09\x09with: [ :canvas | self renderTranscriptOn: canvas ]))",
  3095. referencedClasses: ["HLContainer", "HLHorizontalSplitter"],
  3096. //>>excludeEnd("ide");
  3097. messageSends: ["with:", "with:with:", "codeWidget", "renderTranscriptOn:"]
  3098. }),
  3099. $globals.HLWorkspace);
  3100. $core.addMethod(
  3101. $core.method({
  3102. selector: "renderTranscriptOn:",
  3103. protocol: 'rendering',
  3104. fn: function (html){
  3105. var self=this;
  3106. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3107. return $core.withContext(function($ctx1) {
  3108. //>>excludeEnd("ctx");
  3109. var $1,$3,$2;
  3110. $1=$recv(html)._div();
  3111. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3112. $ctx1.sendIdx["div"]=1;
  3113. //>>excludeEnd("ctx");
  3114. $recv($1)._class_("transcript-container");
  3115. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3116. $ctx1.sendIdx["class:"]=1;
  3117. //>>excludeEnd("ctx");
  3118. $2=$recv($1)._with_((function(){
  3119. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3120. return $core.withContext(function($ctx2) {
  3121. //>>excludeEnd("ctx");
  3122. $3=$recv(html)._div();
  3123. $recv($3)._class_("list-label");
  3124. $recv($3)._with_("Transcript");
  3125. return $recv(self._transcript())._renderOn_(html);
  3126. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3127. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  3128. //>>excludeEnd("ctx");
  3129. }));
  3130. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3131. $ctx1.sendIdx["with:"]=1;
  3132. //>>excludeEnd("ctx");
  3133. return self;
  3134. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3135. }, function($ctx1) {$ctx1.fill(self,"renderTranscriptOn:",{html:html},$globals.HLWorkspace)});
  3136. //>>excludeEnd("ctx");
  3137. },
  3138. //>>excludeStart("ide", pragmas.excludeIdeData);
  3139. args: ["html"],
  3140. source: "renderTranscriptOn: html\x0a\x09html div \x0a\x09\x09class: 'transcript-container';\x0a\x09\x09with: [\x0a\x09\x09\x09html div\x0a\x09\x09\x09\x09class: 'list-label';\x0a\x09\x09\x09\x09with: 'Transcript'.\x0a\x09\x09\x09self transcript renderOn: html ]",
  3141. referencedClasses: [],
  3142. //>>excludeEnd("ide");
  3143. messageSends: ["class:", "div", "with:", "renderOn:", "transcript"]
  3144. }),
  3145. $globals.HLWorkspace);
  3146. $core.addMethod(
  3147. $core.method({
  3148. selector: "transcript",
  3149. protocol: 'accessing',
  3150. fn: function (){
  3151. var self=this;
  3152. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3153. return $core.withContext(function($ctx1) {
  3154. //>>excludeEnd("ctx");
  3155. var $1,$receiver;
  3156. $1=self["@transcript"];
  3157. if(($receiver = $1) == null || $receiver.isNil){
  3158. self["@transcript"]=$recv($globals.HLTranscript)._new();
  3159. return self["@transcript"];
  3160. } else {
  3161. return $1;
  3162. };
  3163. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3164. }, function($ctx1) {$ctx1.fill(self,"transcript",{},$globals.HLWorkspace)});
  3165. //>>excludeEnd("ctx");
  3166. },
  3167. //>>excludeStart("ide", pragmas.excludeIdeData);
  3168. args: [],
  3169. source: "transcript\x0a\x09^ transcript ifNil: [ transcript := HLTranscript new ]",
  3170. referencedClasses: ["HLTranscript"],
  3171. //>>excludeEnd("ide");
  3172. messageSends: ["ifNil:", "new"]
  3173. }),
  3174. $globals.HLWorkspace);
  3175. $core.addMethod(
  3176. $core.method({
  3177. selector: "unregister",
  3178. protocol: 'actions',
  3179. fn: function (){
  3180. var self=this;
  3181. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3182. return $core.withContext(function($ctx1) {
  3183. //>>excludeEnd("ctx");
  3184. (
  3185. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3186. $ctx1.supercall = true,
  3187. //>>excludeEnd("ctx");
  3188. ($globals.HLWorkspace.superclass||$boot.nilAsClass).fn.prototype._unregister.apply($recv(self), []));
  3189. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3190. $ctx1.supercall = false;
  3191. //>>excludeEnd("ctx");;
  3192. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3193. $ctx1.sendIdx["unregister"]=1;
  3194. //>>excludeEnd("ctx");
  3195. $recv(self._transcript())._unregister();
  3196. return self;
  3197. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  3198. }, function($ctx1) {$ctx1.fill(self,"unregister",{},$globals.HLWorkspace)});
  3199. //>>excludeEnd("ctx");
  3200. },
  3201. //>>excludeStart("ide", pragmas.excludeIdeData);
  3202. args: [],
  3203. source: "unregister\x0a\x09super unregister.\x0a\x09self transcript unregister",
  3204. referencedClasses: [],
  3205. //>>excludeEnd("ide");
  3206. messageSends: ["unregister", "transcript"]
  3207. }),
  3208. $globals.HLWorkspace);
  3209. $core.addMethod(
  3210. $core.method({
  3211. selector: "canBeOpenAsTab",
  3212. protocol: 'testing',
  3213. fn: function (){
  3214. var self=this;
  3215. return true;
  3216. },
  3217. //>>excludeStart("ide", pragmas.excludeIdeData);
  3218. args: [],
  3219. source: "canBeOpenAsTab\x0a\x09^ true",
  3220. referencedClasses: [],
  3221. //>>excludeEnd("ide");
  3222. messageSends: []
  3223. }),
  3224. $globals.HLWorkspace.klass);
  3225. $core.addMethod(
  3226. $core.method({
  3227. selector: "tabClass",
  3228. protocol: 'accessing',
  3229. fn: function (){
  3230. var self=this;
  3231. return "workspace";
  3232. },
  3233. //>>excludeStart("ide", pragmas.excludeIdeData);
  3234. args: [],
  3235. source: "tabClass\x0a\x09^ 'workspace'",
  3236. referencedClasses: [],
  3237. //>>excludeEnd("ide");
  3238. messageSends: []
  3239. }),
  3240. $globals.HLWorkspace.klass);
  3241. $core.addMethod(
  3242. $core.method({
  3243. selector: "tabLabel",
  3244. protocol: 'accessing',
  3245. fn: function (){
  3246. var self=this;
  3247. return "Workspace";
  3248. },
  3249. //>>excludeStart("ide", pragmas.excludeIdeData);
  3250. args: [],
  3251. source: "tabLabel\x0a\x09^ 'Workspace'",
  3252. referencedClasses: [],
  3253. //>>excludeEnd("ide");
  3254. messageSends: []
  3255. }),
  3256. $globals.HLWorkspace.klass);
  3257. $core.addMethod(
  3258. $core.method({
  3259. selector: "tabPriority",
  3260. protocol: 'accessing',
  3261. fn: function (){
  3262. var self=this;
  3263. return (10);
  3264. },
  3265. //>>excludeStart("ide", pragmas.excludeIdeData);
  3266. args: [],
  3267. source: "tabPriority\x0a\x09^ 10",
  3268. referencedClasses: [],
  3269. //>>excludeEnd("ide");
  3270. messageSends: []
  3271. }),
  3272. $globals.HLWorkspace.klass);
  3273. });