Browse Source

Updates CodeMirror to version 3.20
- use support/codemirror.js to load CodeMirror
- removes custom amber support (in favor of the default smalltalk mode)
- updates IDEs to reflect codemirror changes

Nicolas Petton 10 years ago
parent
commit
44bc1e247d
10 changed files with 82 additions and 242 deletions
  1. 1 1
      bower.json
  2. 14 12
      js/Helios-Workspace.js
  3. 36 36
      js/IDE.js
  4. 2 1
      st/Helios-Workspace.st
  5. 18 18
      st/IDE.st
  6. 0 21
      support/CodeMirror/amber.css
  7. 0 139
      support/CodeMirror/smalltalk.js
  8. 9 0
      support/codemirror.js
  9. 1 7
      support/devel.js
  10. 1 7
      support/helios.js

+ 1 - 1
bower.json

@@ -15,7 +15,7 @@
     "bootstrap": "http://getbootstrap.com/2.3.2/assets/bootstrap.zip",
     "jquery-tabby": "git://github.com/alanhogan/Tabby",
     "es5-shim": "~2.1.0",
-    "codemirror": "~3.13.0",
+    "codemirror": "~3.20.0",
     "showdown": "~0.3.1",
     "require-css": "~0.0.8"
   }

+ 14 - 12
js/Helios-Workspace.js

@@ -395,30 +395,32 @@ protocol: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$4,$5,$6,$7,$8,$9,$10,$1;
-$2="theme".__minus_gt("amber");
+var $2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$1;
+$2="theme".__minus_gt("default");
 $ctx1.sendIdx["->"]=1;
-$3="lineNumbers".__minus_gt(true);
+$3="mode".__minus_gt("text/x-stsrc");
 $ctx1.sendIdx["->"]=2;
-$4="enterMode".__minus_gt("flat");
+$4="lineNumbers".__minus_gt(true);
 $ctx1.sendIdx["->"]=3;
-$5="indentWithTabs".__minus_gt(true);
+$5="enterMode".__minus_gt("flat");
 $ctx1.sendIdx["->"]=4;
-$6="indentUnit".__minus_gt((4));
+$6="indentWithTabs".__minus_gt(true);
 $ctx1.sendIdx["->"]=5;
-$7="matchBrackets".__minus_gt(true);
+$7="indentUnit".__minus_gt((4));
 $ctx1.sendIdx["->"]=6;
-$8="electricChars".__minus_gt(false);
+$8="matchBrackets".__minus_gt(true);
 $ctx1.sendIdx["->"]=7;
-$9="keyMap".__minus_gt("Amber");
+$9="electricChars".__minus_gt(false);
 $ctx1.sendIdx["->"]=8;
-$10="extraKeys".__minus_gt(smalltalk.HashedCollection._from_(["Shift-Space".__minus_gt("autocomplete")]));
+$10="keyMap".__minus_gt("Amber");
 $ctx1.sendIdx["->"]=9;
-$1=smalltalk.HashedCollection._from_([$2,$3,$4,$5,$6,$7,$8,$9,$10]);
+$11="extraKeys".__minus_gt(smalltalk.HashedCollection._from_(["Shift-Space".__minus_gt("autocomplete")]));
+$ctx1.sendIdx["->"]=10;
+$1=smalltalk.HashedCollection._from_([$2,$3,$4,$5,$6,$7,$8,$9,$10,$11]);
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"editorOptions",{},smalltalk.HLCodeWidget)})},
 args: [],
-source: "editorOptions\x0a\x09^ #{\x0a\x09\x09'theme' -> 'amber'.\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' -> #{'Shift-Space' -> 'autocomplete'}\x0a\x09}",
+source: "editorOptions\x0a\x09^ #{\x0a\x09\x09'theme' -> 'default'.\x0a\x09\x09'mode' -> 'text/x-stsrc'.\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' -> #{'Shift-Space' -> 'autocomplete'}\x0a\x09}",
 messageSends: ["->"],
 referencedClasses: []
 }),

+ 36 - 36
js/IDE.js

@@ -966,7 +966,7 @@ fn: function (aTextarea){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
 self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
-		theme: 'amber',
+		theme: 'default',
 				lineNumbers: true,
 				enterMode: 'flat',
 				indentWithTabs: true,
@@ -976,7 +976,7 @@ self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
 	});
 return self}, function($ctx1) {$ctx1.fill(self,"setEditorOn:",{aTextarea:aTextarea},smalltalk.SourceArea)})},
 args: ["aTextarea"],
-source: "setEditorOn: aTextarea\x0a\x09<self['@editor'] = CodeMirror.fromTextArea(aTextarea, {\x0a\x09\x09theme: 'amber',\x0a\x09\x09\x09\x09lineNumbers: true,\x0a\x09\x09\x09\x09enterMode: 'flat',\x0a\x09\x09\x09\x09indentWithTabs: true,\x0a\x09\x09\x09\x09indentUnit: 4,\x0a\x09\x09\x09\x09matchBrackets: true,\x0a\x09\x09\x09\x09electricChars: false\x0a\x09})>",
+source: "setEditorOn: aTextarea\x0a\x09<self['@editor'] = CodeMirror.fromTextArea(aTextarea, {\x0a\x09\x09theme: 'default',\x0a\x09\x09\x09\x09lineNumbers: true,\x0a\x09\x09\x09\x09enterMode: 'flat',\x0a\x09\x09\x09\x09indentWithTabs: true,\x0a\x09\x09\x09\x09indentUnit: 4,\x0a\x09\x09\x09\x09matchBrackets: true,\x0a\x09\x09\x09\x09electricChars: false\x0a\x09})>",
 messageSends: [],
 referencedClasses: []
 }),
@@ -7395,27 +7395,21 @@ var $1;
 variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",self);
 $ctx1.sendIdx["at:put:"]=1;
-_st(variables)._at_put_("#home",self._home());
+_st(variables)._at_put_("#keys",self._keys());
 $ctx1.sendIdx["at:put:"]=2;
-_st(variables)._at_put_("#receiver",self._receiver());
-$ctx1.sendIdx["at:put:"]=3;
-_st(variables)._at_put_("#selector",self._selector());
-$ctx1.sendIdx["at:put:"]=4;
-_st(variables)._at_put_("#temps",self._temps());
-$ctx1.sendIdx["at:put:"]=5;
-_st(_st(self._class())._instanceVariableNames())._do_((function(each){
+self._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
-return _st(variables)._at_put_(each,self._instVarAt_(each));
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
+return _st(variables)._at_put_(key,value);
+}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1,1)})}));
 _st(anInspector)._setLabel_(self._printString());
 $1=_st(anInspector)._setVariables_(variables);
-return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},smalltalk.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},smalltalk.AssociativeCollection)})},
 args: ["anInspector"],
-source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#home' put: self home.\x0a\x09variables at: '#receiver' put: self receiver.\x0a\x09variables at: '#selector' put: self selector.\x0a\x09variables at: '#temps' put: self temps.\x0a\x09self class instanceVariableNames do: [ :each |\x0a\x09\x09variables at: each put: (self instVarAt: each) ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
-messageSends: ["new", "at:put:", "home", "receiver", "selector", "temps", "do:", "instanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"],
+source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#keys' put: self keys.\x0a\x09self keysAndValuesDo: [ :key :value |\x0a\x09\x09variables at: key put: value ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
+messageSends: ["new", "at:put:", "keys", "keysAndValuesDo:", "setLabel:", "printString", "setVariables:"],
 referencedClasses: ["Dictionary"]
 }),
-smalltalk.MethodContext);
+smalltalk.AssociativeCollection);
 
 smalltalk.addMethod(
 smalltalk.method({
@@ -7423,28 +7417,29 @@ selector: "inspectOn:",
 protocol: '*IDE',
 fn: function (anInspector){
 var self=this;
-var variables;
+var variables,i;
 function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
 variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",self);
 $ctx1.sendIdx["at:put:"]=1;
-_st(variables)._at_put_("#keys",self._keys());
-$ctx1.sendIdx["at:put:"]=2;
-self._keysAndValuesDo_((function(key,value){
+i=(1);
+self._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
-return _st(variables)._at_put_(key,value);
-}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1,1)})}));
+_st(variables)._at_put_(i,each);
+i=_st(i).__plus((1));
+return i;
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
 _st(anInspector)._setLabel_(self._printString());
 $1=_st(anInspector)._setVariables_(variables);
-return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},smalltalk.AssociativeCollection)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables,i:i},smalltalk.Set)})},
 args: ["anInspector"],
-source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#keys' put: self keys.\x0a\x09self keysAndValuesDo: [ :key :value |\x0a\x09\x09variables at: key put: value ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
-messageSends: ["new", "at:put:", "keys", "keysAndValuesDo:", "setLabel:", "printString", "setVariables:"],
+source: "inspectOn: anInspector\x0a\x09| variables i |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09i := 1.\x0a\x09self do: [ :each |\x0a\x09\x09variables at: i put: each.\x0a\x09\x09i := i + 1 ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
+messageSends: ["new", "at:put:", "do:", "+", "setLabel:", "printString", "setVariables:"],
 referencedClasses: ["Dictionary"]
 }),
-smalltalk.AssociativeCollection);
+smalltalk.Set);
 
 smalltalk.addMethod(
 smalltalk.method({
@@ -7452,28 +7447,33 @@ selector: "inspectOn:",
 protocol: '*IDE',
 fn: function (anInspector){
 var self=this;
-var variables,i;
+var variables;
 function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
 variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",self);
 $ctx1.sendIdx["at:put:"]=1;
-i=(1);
-self._do_((function(each){
+_st(variables)._at_put_("#home",self._home());
+$ctx1.sendIdx["at:put:"]=2;
+_st(variables)._at_put_("#receiver",self._receiver());
+$ctx1.sendIdx["at:put:"]=3;
+_st(variables)._at_put_("#selector",self._selector());
+$ctx1.sendIdx["at:put:"]=4;
+_st(variables)._at_put_("#temps",self._temps());
+$ctx1.sendIdx["at:put:"]=5;
+_st(_st(self._class())._instanceVariableNames())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
-_st(variables)._at_put_(i,each);
-i=_st(i).__plus((1));
-return i;
+return _st(variables)._at_put_(each,self._instVarAt_(each));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
 _st(anInspector)._setLabel_(self._printString());
 $1=_st(anInspector)._setVariables_(variables);
-return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables,i:i},smalltalk.Set)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},smalltalk.MethodContext)})},
 args: ["anInspector"],
-source: "inspectOn: anInspector\x0a\x09| variables i |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09i := 1.\x0a\x09self do: [ :each |\x0a\x09\x09variables at: i put: each.\x0a\x09\x09i := i + 1 ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
-messageSends: ["new", "at:put:", "do:", "+", "setLabel:", "printString", "setVariables:"],
+source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#home' put: self home.\x0a\x09variables at: '#receiver' put: self receiver.\x0a\x09variables at: '#selector' put: self selector.\x0a\x09variables at: '#temps' put: self temps.\x0a\x09self class instanceVariableNames do: [ :each |\x0a\x09\x09variables at: each put: (self instVarAt: each) ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
+messageSends: ["new", "at:put:", "home", "receiver", "selector", "temps", "do:", "instanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"],
 referencedClasses: ["Dictionary"]
 }),
-smalltalk.Set);
+smalltalk.MethodContext);
 
 });

+ 2 - 1
st/Helios-Workspace.st

@@ -82,7 +82,8 @@ currentLineOrSelection
 
 editorOptions
 	^ #{
-		'theme' -> 'amber'.
+		'theme' -> 'default'.
+		'mode' -> 'text/x-stsrc'.
         'lineNumbers' -> true.
         'enterMode' -> 'flat'.
         'indentWithTabs' -> true.

+ 18 - 18
st/IDE.st

@@ -210,7 +210,7 @@ selection
 
 setEditorOn: aTextarea
 	<self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
-		theme: 'amber',
+		theme: 'default',
 				lineNumbers: true,
 				enterMode: 'flat',
 				indentWithTabs: true,
@@ -2342,47 +2342,47 @@ inspectOn: anInspector
 	anInspector setLabel: label
 ! !
 
-!MethodContext methodsFor: '*IDE'!
+!AssociativeCollection methodsFor: '*IDE'!
 
 inspectOn: anInspector
 	| variables |
 	variables := Dictionary new.
 	variables at: '#self' put: self.
-	variables at: '#home' put: self home.
-	variables at: '#receiver' put: self receiver.
-	variables at: '#selector' put: self selector.
-	variables at: '#temps' put: self temps.
-	self class instanceVariableNames do: [ :each |
-		variables at: each put: (self instVarAt: each) ].
+	variables at: '#keys' put: self keys.
+	self keysAndValuesDo: [ :key :value |
+		variables at: key put: value ].
 	anInspector
 		setLabel: self printString;
 		setVariables: variables
 ! !
 
-!AssociativeCollection methodsFor: '*IDE'!
+!Set methodsFor: '*IDE'!
 
 inspectOn: anInspector
-	| variables |
+	| variables i |
 	variables := Dictionary new.
 	variables at: '#self' put: self.
-	variables at: '#keys' put: self keys.
-	self keysAndValuesDo: [ :key :value |
-		variables at: key put: value ].
+	i := 1.
+	self do: [ :each |
+		variables at: i put: each.
+		i := i + 1 ].
 	anInspector
 		setLabel: self printString;
 		setVariables: variables
 ! !
 
-!Set methodsFor: '*IDE'!
+!MethodContext methodsFor: '*IDE'!
 
 inspectOn: anInspector
 	| variables |
 	variables := Dictionary new.
 	variables at: '#self' put: self.
-	i := 1.
-	self do: [ :each |
-		variables at: i put: each.
-		i := i + 1 ].
+	variables at: '#home' put: self home.
+	variables at: '#receiver' put: self receiver.
+	variables at: '#selector' put: self selector.
+	variables at: '#temps' put: self temps.
+	self class instanceVariableNames do: [ :each |
+		variables at: each put: (self instVarAt: each) ].
 	anInspector
 		setLabel: self printString;
 		setVariables: variables

+ 0 - 21
support/CodeMirror/amber.css

@@ -1,21 +0,0 @@
-.cm-s-amber span.cm-keyword {color: #7F0000; font-weight: bold;}
-.cm-s-amber span.cm-className {font-weight: bold;}
-.cm-s-amber span.cm-assignment {font-weight: bold;}
-.cm-s-amber span.cm-return {font-weight: bold;}
-.cm-s-amber span.cm-atom {color: #219;}
-.cm-s-amber span.cm-number {color: #7F0000;}
-.cm-s-amber span.cm-def {color: #00f;}
-.cm-s-amber span.cm-variable {color: grey;}
-.cm-s-amber span.cm-variable-2 {color: #05a;}
-.cm-s-amber span.cm-variable-3 {color: #0a5;}
-.cm-s-amber span.cm-property {color: black;}
-.cm-s-amber span.cm-operator {color: #00007F;}
-.cm-s-amber span.cm-comment {color: #007F00;}
-.cm-s-amber span.cm-string {color: #7F007F;}
-.cm-s-amber span.cm-meta {color: #555;}
-.cm-s-amber span.cm-error {color: #f00;}
-.cm-s-amber span.cm-qualifier {color: #555;}
-.cm-s-amber span.cm-builtin {color: #30a;}
-.cm-s-amber span.cm-bracket {color: #cc7;}
-.cm-s-amber span.cm-tag {color: #170;}
-.cm-s-amber span.cm-attribute {color: #00c;}

+ 0 - 139
support/CodeMirror/smalltalk.js

@@ -1,139 +0,0 @@
-CodeMirror.defineMode('smalltalk', function(config, modeConfig) {
-
-	var specialChars = /[+\-/\\*~<>=@%|&?!.:;^]/;
-	var keywords = /true|false|nil|self|super|thisContext/;
-
-	var Context = function(tokenizer, parent) {
-		this.next = tokenizer;
-		this.parent = parent;
-	};
-
-	var Token = function(name, context, eos) {
-		this.name = name;
-		this.context = context;
-		this.eos = eos;
-	};
-
-	var State = function() {
-		this.context = new Context(next, null);
-		this.expectVariable = true;
-		this.indentation = 0;
-		this.userIndentationDelta = 0;
-	};
-
-	State.prototype.userIndent = function(indentation) {
-		this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0;
-	};
-
-	var next = function(stream, context, state) {
-		var token = new Token(null, context, false);
-		var aChar = stream.next();
-
-		if (aChar === '"') {
-			token = nextComment(stream, new Context(nextComment, context));
-
-		} else if (aChar === '\'') {
-			token = nextString(stream, new Context(nextString, context));
-
-		} else if (aChar === '#') {
-			stream.eatWhile(/[^ .]/);
-			token.name = 'string-2';
-
-		} else if (aChar === '$') {
-			stream.eatWhile(/[^ ]/);
-			token.name = 'string-2';
-
-		} else if (aChar === '|' && state.expectVariable) {
-			token.context = new Context(nextTemporaries, context);
-
-		} else if (/[\[\]{}()]/.test(aChar)) {
-			token.name = 'bracket';
-			token.eos = /[\[{(]/.test(aChar);
-
-			if (aChar === '[') {
-				state.indentation++;
-			} else if (aChar === ']') {
-				state.indentation = Math.max(0, state.indentation - 1);
-			}
-
-		} else if (specialChars.test(aChar)) {
-			stream.eatWhile(specialChars);
-			token.name = 'operator';
-			token.eos = aChar !== ';'; // ; cascaded message expression
-
-		} else if (/\d/.test(aChar)) {
-			stream.eatWhile(/[\w\d]/);
-			token.name = 'number';
-
-		} else if (/[\w_]/.test(aChar)) {
-			stream.eatWhile(/[\w\d_]/);
-			token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null;
-
-		} else {
-			token.eos = state.expectVariable;
-		}
-
-		return token;
-	};
-
-	var nextComment = function(stream, context) {
-		stream.eatWhile(/[^"]/);
-		return new Token('comment', stream.eat('"') ? context.parent : context, true);
-	};
-
-	var nextString = function(stream, context) {
-		stream.eatWhile(/[^']/);
-		return new Token('string', stream.eat('\'') ? context.parent : context, false);
-	};
-
-	var nextTemporaries = function(stream, context, state) {
-		var token = new Token(null, context, false);
-		var aChar = stream.next();
-
-		if (aChar === '|') {
-			token.context = context.parent;
-			token.eos = true;
-
-		} else {
-			stream.eatWhile(/[^|]/);
-			token.name = 'variable';
-		}
-
-		return token;
-	};
-
-	return {
-		startState: function() {
-			return new State;
-		},
-
-		token: function(stream, state) {
-			state.userIndent(stream.indentation());
-
-			if (stream.eatSpace()) {
-				return null;
-			}
-
-			var token = state.context.next(stream, state.context, state);
-			state.context = token.context;
-			state.expectVariable = token.eos;
-
-			state.lastToken = token;
-			return token.name;
-		},
-
-		blankLine: function(state) {
-			state.userIndent(0);
-		},
-
-		indent: function(state, textAfter) {
-			var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta;
-			return (state.indentation + i) * config.indentUnit;
-		},
-
-		electricChars: ']'
-	};
-
-});
-
-CodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});

+ 9 - 0
support/codemirror.js

@@ -0,0 +1,9 @@
+define(["amber_lib/codemirror/lib/codemirror"], function () {
+	define([
+		'amber_lib/codemirror/mode/smalltalk/smalltalk',
+		'amber_lib/codemirror/addon/hint/show-hint',
+		'css!amber_lib/codemirror/theme/ambiance',
+		'css!amber_lib/codemirror/lib/codemirror',
+		'css!amber_lib/codemirror/addon/hint/show-hint'
+	]);
+});

+ 1 - 7
support/devel.js

@@ -4,13 +4,7 @@ define([
 	'./lang',
 	'jquery-ui',
 	'amber_lib/jquery-tabby/jquery.textarea',
-	'amber_lib/codemirror/lib/codemirror',
-	'amber_inc/CodeMirror/smalltalk',
-	'amber_lib/codemirror/addon/hint/show-hint',
-	'css!amber_lib/codemirror/theme/ambiance',
-	'css!amber_lib/codemirror/lib/codemirror',
-	'css!amber_lib/codemirror/addon/hint/show-hint',
-	'css!amber_inc/CodeMirror/amber',
+	'./codemirror',
 	'css!amber_css/amber',
 	'amber_core/IDE',
 	'amber_core/Examples',

+ 1 - 7
support/helios.js

@@ -6,13 +6,7 @@ define([
 	'amber_lib/jquery-tabby/jquery.textarea',
 	'amber_lib/bootstrap/js/bootstrap',
 	'amber_lib/showdown/compressed/showdown',
-	'amber_lib/codemirror/lib/codemirror',
-	'amber_inc/CodeMirror/smalltalk',
-	'amber_lib/codemirror/addon/hint/show-hint',
-	'css!amber_lib/codemirror/theme/ambiance',
-	'css!amber_lib/codemirror/lib/codemirror',
-	'css!amber_lib/codemirror/addon/hint/show-hint',
-	'css!amber_inc/CodeMirror/amber',
+	'./codemirror',
 	'css!amber_css/helios',
 	'amber_core/IDE',
 	'amber_core/Examples',