| 
					
				 | 
			
			
				@@ -3411,6 +3411,43 @@ referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 globals.HLManager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+selector: "activatePreviousTab", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+protocol: 'actions', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var previousTab; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$2,$5,$4,$3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $early={}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$1=self._tabs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx1.sendIdx["tabs"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._ifEmpty_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+throw $early=[self]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=self._tabs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx1.sendIdx["tabs"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$5=self._tabs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx1.sendIdx["tabs"]=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$4=_st($5)._indexOf_(self._activeTab()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$3=_st($4).__minus((1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+previousTab=_st($2)._at_ifAbsent_($3,(function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st(self._tabs())._last(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+self._activate_(previousTab); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+catch(e) {if(e===$early)return e[0]; throw e} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx1) {$ctx1.fill(self,"activatePreviousTab",{previousTab:previousTab},globals.HLManager)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+args: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "activatePreviousTab\x0a\x09| previousTab |\x0a\x09\x0a\x09self tabs ifEmpty: [ ^ self ].\x0a\x09\x0a\x09previousTab := self tabs \x0a\x09\x09at: (self tabs indexOf: self activeTab) - 1 \x0a\x09\x09ifAbsent: [ self tabs last ].\x0a\x09\x09\x0a\x09self activate: previousTab", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["ifEmpty:", "tabs", "at:ifAbsent:", "-", "indexOf:", "activeTab", "last", "activate:"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+globals.HLManager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 smalltalk.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 selector: "activeTab", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4135,42 +4172,66 @@ protocol: 'private', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 fn: function (){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx1) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var $1,$2,$3,$4,$5,$6; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var $1,$3,$4,$5,$2,$7,$6,$8,$9,$10,$11,$12; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $1="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $ctx1.sendIdx["asJQuery"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($1)._keydown_((function(event){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($1)._keypress_((function(event){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$2=_st(_st(_st(event)._which()).__eq((9)))._and_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$3=_st(event)._ctrlKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx2.sendIdx["ctrlKey"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$2=_st($3)._and_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return _st(event)._shiftKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$4=_st(event)._which(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx3.sendIdx["which"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$5="<"._asciiValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx3.sendIdx["asciiValue"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st($4).__eq($5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx3.sendIdx["="]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx2.sendIdx["and:"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(smalltalk.assert($2)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-self._activateNextTab(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+self._activatePreviousTab(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st(event)._preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx2.sendIdx["preventDefault"]=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$3=_st(event)._ctrlKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if(smalltalk.assert($3)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$4="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["asJQuery"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return _st($4)._addClass_("navigation"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$7=_st(event)._ctrlKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx2.sendIdx["ctrlKey"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$6=_st($7)._and_((function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st(_st(event)._which()).__eq(">"._asciiValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx3) {$ctx3.fillBlock({},$ctx2,4)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(smalltalk.assert($6)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+self._activateNextTab(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st(event)._preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,1)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$5="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx1.sendIdx["asJQuery"]=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-_st($5)._keyup_((function(event){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$8="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx1.sendIdx["asJQuery"]=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($8)._keydown_((function(event){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$6="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$ctx2.sendIdx["asJQuery"]=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return _st($6)._removeClass_("navigation"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,5)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$9=_st(event)._ctrlKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(smalltalk.assert($9)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$10="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx2.sendIdx["asJQuery"]=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st($10)._addClass_("navigation"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,6)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$11="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx1.sendIdx["asJQuery"]=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_st($11)._keyup_((function(event){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$12="body"._asJQuery(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$ctx2.sendIdx["asJQuery"]=5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return _st($12)._removeClass_("navigation"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,8)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _st(_st(window)._asJQuery())._resize_((function(event){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return smalltalk.withContext(function($ctx2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self._refresh(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,6)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,9)})})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self}, function($ctx1) {$ctx1.fill(self,"setupEvents",{},globals.HLManager)})}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "setupEvents\x0a\x09'body' asJQuery keydown: [ :event |\x0a\x09\x0a\x09\x09\x22shift+tab\x22\x0a\x09\x09(event which = 9 and: [ event shiftKey ]) ifTrue: [\x0a\x09\x09\x09self activateNextTab.\x0a\x09\x09\x09event preventDefault ].\x0a\x09\x09\x09\x0a\x09\x09\x22On ctrl keydown, adds a 'navigation' css class to <body>\x0a\x09\x09for the CodeMirror navigation links. See `HLCodeWidget`.\x22\x0a\x09\x09event ctrlKey ifTrue: [\x0a\x09\x09\x09'body' asJQuery addClass: 'navigation' ] ].\x0a\x09\x09\x09\x0a\x09'body' asJQuery keyup: [ :event |\x0a\x09\x09'body' asJQuery removeClass: 'navigation' ].\x0a\x09\x09\x0a\x09window asJQuery resize: [ :event |\x0a\x09\x09self refresh ]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: ["keydown:", "asJQuery", "ifTrue:", "and:", "=", "which", "shiftKey", "activateNextTab", "preventDefault", "ctrlKey", "addClass:", "keyup:", "removeClass:", "resize:", "refresh"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "setupEvents\x0a\x09'body' asJQuery keypress: [ :event |\x0a\x09\x0a\x09\x09\x22ctrl+> and ctrl+<\x22\x0a\x09\x09(event ctrlKey and: [ event which = '<' asciiValue ]) ifTrue: [\x0a\x09\x09\x09self activatePreviousTab.\x0a\x09\x09\x09event preventDefault ].\x0a\x09\x09(event ctrlKey and: [ event which = '>' asciiValue ]) ifTrue: [\x0a\x09\x09\x09self activateNextTab.\x0a\x09\x09\x09event preventDefault ] ].\x0a\x0a\x09'body' asJQuery keydown: [ :event |\x0a\x09\x09\x09\x0a\x09\x09\x22On ctrl keydown, adds a 'navigation' css class to <body>\x0a\x09\x09for the CodeMirror navigation links. See `HLCodeWidget`.\x22\x0a\x09\x09event ctrlKey ifTrue: [\x0a\x09\x09\x09'body' asJQuery addClass: 'navigation' ] ].\x0a\x09\x09\x09\x0a\x09'body' asJQuery keyup: [ :event |\x0a\x09\x09'body' asJQuery removeClass: 'navigation' ].\x0a\x09\x09\x0a\x09window asJQuery resize: [ :event |\x0a\x09\x09self refresh ]", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+messageSends: ["keypress:", "asJQuery", "ifTrue:", "and:", "ctrlKey", "=", "which", "asciiValue", "activatePreviousTab", "preventDefault", "activateNextTab", "keydown:", "addClass:", "keyup:", "removeClass:", "resize:", "refresh"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 globals.HLManager); 
			 |