Bug 423945 - move syntax highlighting declarations into separate per-language plug-ins
diff --git a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
index 7a23388..7f46f07 100644
--- a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
+++ b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
@@ -44,7 +44,7 @@
 	var provider = new PluginProvider(headers);
 	
 	/**
-	 * Register the JavaScript content type
+	 * Register the JavaScript content types
 	 */
 	provider.registerServiceProvider("orion.core.contenttype", {}, {
 		contentTypes: [
@@ -53,8 +53,13 @@
 				name: "JavaScript",
 				extension: ["js"],
 				imageClass: "file-sprite-javascript modelDecorationSprite"
+			}, {id: "application/json",
+				"extends": "text/plain",
+				name: "JSON",
+				extension: ["json"],
+				imageClass: "file-sprite-javascript modelDecorationSprite"
 			}
-		] 
+		]
 	});
 
 	/**
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/css/cssPlugin.html b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/css/cssPlugin.html
new file mode 100644
index 0000000..42a53ed
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/css/cssPlugin.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+    <meta name="copyright" content="Copyright (c) IBM Corporation and others 2014.">
+    <title>Orion CSS Support</title>
+    <link rel="stylesheet" type="text/css" href="/settings/settings.css"/>
+	<script src="../../../requirejs/require.js"></script>
+	<script type="text/javascript">
+		/*global require*/
+		require({
+			baseUrl: '../../../',
+			paths: {
+				text: 'requirejs/text',
+				i18n: 'requirejs/i18n',
+				domReady: 'requirejs/domReady'
+			},
+			packages: [
+			]
+		});
+		require(["cssPlugin.js"]);
+	</script>
+</head>
+
+<body id="orion-settings" class="orionPage" style="padding: 10px;">
+	<h2>CSS Tools Support</h2>
+	<p>
+		This plugin provides CSS tooling, including:
+	</p>
+	<ul>
+		<li><em>Editing</em> - an editor with syntax highlighting</li>
+	</ul>
+	<p>October 16, 2013</p>	
+	
+	<div class="split-selection-table">
+	<div class="sectionWrapper toolComposite" style="margin: 15px 30px 0px 15px; max-width: 600px;">
+		<div class="sectionAnchor sectionTitle layoutLeft">
+			License
+		</div>
+	</div>
+	<div class="sections sectionTable" style="margin: 0px 30px 0px 15px; padding-left: 6px; padding-right: 6px; max-width: 600px;">
+		<p>
+		The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+		indicated below, the Content is provided to you under the terms and conditions of the
+		<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License Version 1.0</a>
+		(&quot;EPL&quot;), and the <a href="http://www.eclipse.org/org/documents/edl-v10.html">
+		Eclipse Distribution License Version 1.0</a> (&quot;EDL&quot;).
+		For purposes of the EPL and EDL, &quot;Program&quot; will mean the Content.
+		</p>
+		
+		<p>
+		If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+		being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+		provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+		</p>
+	</div>
+	</div>
+</body>	
+</html>
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/css/cssPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/css/cssPlugin.js
new file mode 100644
index 0000000..6f68ea3
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/css/cssPlugin.js
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * @license
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials are made 
+ * available under the terms of the Eclipse Public License v1.0 
+ * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
+ * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*global esprima*/
+/*jslint amd:true*/
+define(['orion/plugin', 'orion/editor/stylers/text_css/syntax', 'orion/editor/cssContentAssist'], function(PluginProvider, mCSS, cssContentAssist) {
+
+	/**
+	 * Plug-in headers
+	 */
+	var headers = {
+		name: "Orion CSS Tool Support",
+		version: "1.0",
+		description: "This plugin provides CSS tools support for Orion."
+	};
+	var provider = new PluginProvider(headers);
+
+	/**
+	 * Register the CSS content type
+	 */
+	provider.registerServiceProvider("orion.core.contenttype", {}, {
+		contentTypes: [
+			{	id: "text/css",
+				"extends": "text/plain",
+				name: "CSS",
+				extension: ["css"],
+				imageClass: "file-sprite-css modelDecorationSprite"
+			}
+		] 
+	});
+
+	/**
+	 * Register content assist providers
+	 */
+	provider.registerService("orion.edit.contentassist",
+		new cssContentAssist.CssContentAssistProvider(),
+		{	name: "CSS content assist",
+			contentType: ["text/css"]
+		});
+
+	/**
+	 * Register syntax styling
+	 */
+	provider.registerServiceProvider("orion.edit.highlighter", {}, mCSS.grammars[mCSS.grammars.length - 1]);
+
+	provider.connect();
+});
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/html/htmlPlugin.html b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/html/htmlPlugin.html
new file mode 100644
index 0000000..b4be9af
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/html/htmlPlugin.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+    <meta name="copyright" content="Copyright (c) IBM Corporation and others 2014.">
+    <title>Orion HTML Support</title>
+    <link rel="stylesheet" type="text/css" href="/settings/settings.css"/>
+	<script src="../../../requirejs/require.js"></script>
+	<script type="text/javascript">
+		/*global require*/
+		require({
+			baseUrl: '../../../',
+			paths: {
+				text: 'requirejs/text',
+				i18n: 'requirejs/i18n',
+				domReady: 'requirejs/domReady'
+			},
+			packages: [
+			]
+		});
+		require(["htmlPlugin.js"]);
+	</script>
+</head>
+
+<body id="orion-settings" class="orionPage" style="padding: 10px;">
+	<h2>HTML Tools Support</h2>
+	<p>
+		This plugin provides HTML tooling, including:
+	</p>
+	<ul>
+		<li><em>Editing</em> - an editor with syntax highlighting</li>
+	</ul>
+	<p>October 16, 2013</p>	
+	
+	<div class="split-selection-table">
+	<div class="sectionWrapper toolComposite" style="margin: 15px 30px 0px 15px; max-width: 600px;">
+		<div class="sectionAnchor sectionTitle layoutLeft">
+			License
+		</div>
+	</div>
+	<div class="sections sectionTable" style="margin: 0px 30px 0px 15px; padding-left: 6px; padding-right: 6px; max-width: 600px;">
+		<p>
+		The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+		indicated below, the Content is provided to you under the terms and conditions of the
+		<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License Version 1.0</a>
+		(&quot;EPL&quot;), and the <a href="http://www.eclipse.org/org/documents/edl-v10.html">
+		Eclipse Distribution License Version 1.0</a> (&quot;EDL&quot;).
+		For purposes of the EPL and EDL, &quot;Program&quot; will mean the Content.
+		</p>
+		
+		<p>
+		If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+		being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+		provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+		</p>
+	</div>
+	</div>
+</body>	
+</html>
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/html/htmlPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/html/htmlPlugin.js
new file mode 100644
index 0000000..cb62f04
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/html/htmlPlugin.js
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * @license
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials are made 
+ * available under the terms of the Eclipse Public License v1.0 
+ * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
+ * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*global esprima*/
+/*jslint amd:true*/
+define(['orion/plugin', 'orion/editor/htmlContentAssist', 'orion/editor/htmlGrammar', 'orion/editor/stylers/text_html/syntax'], function(PluginProvider, htmlContentAssist, htmlGrammar, mHTML) {
+
+	/**
+	 * Plug-in headers
+	 */
+	var headers = {
+		name: "Orion HTML Tool Support",
+		version: "1.0",
+		description: "This plugin provides HTML tools support for Orion."
+	};
+	var provider = new PluginProvider(headers);
+
+	/**
+	 * Register the HTML content type
+	 */
+	provider.registerServiceProvider("orion.core.contenttype", {}, {
+		contentTypes: [
+			{	id: "text/html",
+				"extends": "text/plain",
+				name: "HTML",
+				extension: ["html", "htm"],
+				imageClass: "file-sprite-html modelDecorationSprite"
+			}
+		] 
+	});
+
+	/**
+	 * Register content assist providers
+	 */
+	provider.registerService("orion.edit.contentassist",
+		new htmlContentAssist.HTMLContentAssistProvider(),
+		{	name: "HTML content assist",
+			contentType: ["text/html"],
+			charTriggers: "<",
+			excludedStyles: "(comment.*|string.*)"
+		});
+
+	/**
+	 * Register syntax styling
+	 */
+	provider.registerServiceProvider("orion.edit.highlighter", {}, mHTML.grammars[mHTML.grammars.length - 1]);
+
+	provider.connect();
+});
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/java/javaPlugin.html b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/java/javaPlugin.html
new file mode 100644
index 0000000..157add6
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/java/javaPlugin.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+    <meta name="copyright" content="Copyright (c) IBM Corporation and others 2014.">
+    <title>Orion Java Support</title>
+    <link rel="stylesheet" type="text/css" href="/settings/settings.css"/>
+	<script src="../../../requirejs/require.js"></script>
+	<script type="text/javascript">
+		/*global require*/
+		require({
+			baseUrl: '../../../',
+			paths: {
+				text: 'requirejs/text',
+				i18n: 'requirejs/i18n',
+				domReady: 'requirejs/domReady'
+			},
+			packages: [
+			]
+		});
+		require(["javaPlugin.js"]);
+	</script>
+</head>
+
+<body id="orion-settings" class="orionPage" style="padding: 10px;">
+	<h2>Java Tools Support</h2>
+	<p>
+		This plugin provides Java tooling, including:
+	</p>
+	<ul>
+		<li><em>Editing</em> - an editor with syntax highlighting</li>
+	</ul>
+	<p>October 16, 2013</p>	
+	
+	<div class="split-selection-table">
+	<div class="sectionWrapper toolComposite" style="margin: 15px 30px 0px 15px; max-width: 600px;">
+		<div class="sectionAnchor sectionTitle layoutLeft">
+			License
+		</div>
+	</div>
+	<div class="sections sectionTable" style="margin: 0px 30px 0px 15px; padding-left: 6px; padding-right: 6px; max-width: 600px;">
+		<p>
+		The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+		indicated below, the Content is provided to you under the terms and conditions of the
+		<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License Version 1.0</a>
+		(&quot;EPL&quot;), and the <a href="http://www.eclipse.org/org/documents/edl-v10.html">
+		Eclipse Distribution License Version 1.0</a> (&quot;EDL&quot;).
+		For purposes of the EPL and EDL, &quot;Program&quot; will mean the Content.
+		</p>
+		
+		<p>
+		If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+		being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+		provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+		</p>
+	</div>
+	</div>
+</body>	
+</html>
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/java/javaPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/java/javaPlugin.js
new file mode 100644
index 0000000..cb7a367
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/java/javaPlugin.js
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * @license
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials are made 
+ * available under the terms of the Eclipse Public License v1.0 
+ * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
+ * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*global esprima*/
+/*jslint amd:true*/
+define(['orion/plugin', 'orion/editor/stylers/text_x-java-source/syntax'], function(PluginProvider, mJava) {
+
+	/**
+	 * Plug-in headers
+	 */
+	var headers = {
+		name: "Orion Java Tool Support",
+		version: "1.0",
+		description: "This plugin provides Java tools support for Orion."
+	};
+	var provider = new PluginProvider(headers);
+
+	/**
+	 * Register the Java content type
+	 */
+	provider.registerServiceProvider("orion.core.contenttype", {}, {
+		contentTypes: [
+			{	id: "text/x-java-source",
+				"extends": "text/plain",
+				name: "Java",
+				extension: ["java"]
+			}
+		] 
+	});
+
+	/**
+	 * Register syntax styling
+	 */
+	provider.registerServiceProvider("orion.edit.highlighter", {}, mJava.grammars[mJava.grammars.length - 1]);
+
+	provider.connect();
+});
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/php/phpPlugin.html b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/php/phpPlugin.html
new file mode 100644
index 0000000..bd4894d
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/php/phpPlugin.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+    <meta name="copyright" content="Copyright (c) IBM Corporation and others 2014.">
+    <title>Orion PHP Support</title>
+    <link rel="stylesheet" type="text/css" href="/settings/settings.css"/>
+	<script src="../../../requirejs/require.js"></script>
+	<script type="text/javascript">
+		/*global require*/
+		require({
+			baseUrl: '../../../',
+			paths: {
+				text: 'requirejs/text',
+				i18n: 'requirejs/i18n',
+				domReady: 'requirejs/domReady'
+			},
+			packages: [
+			]
+		});
+		require(["phpPlugin.js"]);
+	</script>
+</head>
+
+<body id="orion-settings" class="orionPage" style="padding: 10px;">
+	<h2>PHP Tools Support</h2>
+	<p>
+		This plugin provides PHP tooling, including:
+	</p>
+	<ul>
+		<li><em>Editing</em> - an editor with syntax highlighting</li>
+	</ul>
+	<p>October 16, 2013</p>	
+	
+	<div class="split-selection-table">
+	<div class="sectionWrapper toolComposite" style="margin: 15px 30px 0px 15px; max-width: 600px;">
+		<div class="sectionAnchor sectionTitle layoutLeft">
+			License
+		</div>
+	</div>
+	<div class="sections sectionTable" style="margin: 0px 30px 0px 15px; padding-left: 6px; padding-right: 6px; max-width: 600px;">
+		<p>
+		The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+		indicated below, the Content is provided to you under the terms and conditions of the
+		<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License Version 1.0</a>
+		(&quot;EPL&quot;), and the <a href="http://www.eclipse.org/org/documents/edl-v10.html">
+		Eclipse Distribution License Version 1.0</a> (&quot;EDL&quot;).
+		For purposes of the EPL and EDL, &quot;Program&quot; will mean the Content.
+		</p>
+		
+		<p>
+		If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+		being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+		provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+		</p>
+	</div>
+	</div>
+</body>	
+</html>
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/php/phpPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/php/phpPlugin.js
new file mode 100644
index 0000000..f84be4f
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/php/phpPlugin.js
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * @license
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials are made 
+ * available under the terms of the Eclipse Public License v1.0 
+ * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
+ * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*global esprima*/
+/*jslint amd:true*/
+define(['orion/plugin', 'orion/editor/stylers/text_x-php/syntax'], function(PluginProvider, mPHP) {
+
+	/**
+	 * Plug-in headers
+	 */
+	var headers = {
+		name: "Orion PHP Tool Support",
+		version: "1.0",
+		description: "This plugin provides PHP tools support for Orion."
+	};
+	var provider = new PluginProvider(headers);
+
+	/**
+	 * Register the PHP content type
+	 */
+	provider.registerServiceProvider("orion.core.contenttype", {}, {
+		contentTypes: [
+			{	id: "text/x-php",
+				"extends": "text/plain",
+				name: "PHP",
+				extension: ["php", "php3", "php4", "php5", "phpt", "phtml", "aw", "ctp"]
+			}
+		] 
+	});
+
+	/**
+	 * Register syntax styling
+	 */
+	provider.registerServiceProvider("orion.edit.highlighter", {}, mPHP.grammars[mPHP.grammars.length - 1]);
+
+	provider.connect();
+});
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/python/pythonPlugin.html b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/python/pythonPlugin.html
new file mode 100644
index 0000000..6882c94
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/python/pythonPlugin.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+    <meta name="copyright" content="Copyright (c) IBM Corporation and others 2014.">
+    <title>Orion Python Support</title>
+    <link rel="stylesheet" type="text/css" href="/settings/settings.css"/>
+	<script src="../../../requirejs/require.js"></script>
+	<script type="text/javascript">
+		/*global require*/
+		require({
+			baseUrl: '../../../',
+			paths: {
+				text: 'requirejs/text',
+				i18n: 'requirejs/i18n',
+				domReady: 'requirejs/domReady'
+			},
+			packages: [
+			]
+		});
+		require(["pythonPlugin.js"]);
+	</script>
+</head>
+
+<body id="orion-settings" class="orionPage" style="padding: 10px;">
+	<h2>Python Tools Support</h2>
+	<p>
+		This plugin provides Python tooling, including:
+	</p>
+	<ul>
+		<li><em>Editing</em> - an editor with syntax highlighting</li>
+	</ul>
+	<p>October 16, 2013</p>	
+	
+	<div class="split-selection-table">
+	<div class="sectionWrapper toolComposite" style="margin: 15px 30px 0px 15px; max-width: 600px;">
+		<div class="sectionAnchor sectionTitle layoutLeft">
+			License
+		</div>
+	</div>
+	<div class="sections sectionTable" style="margin: 0px 30px 0px 15px; padding-left: 6px; padding-right: 6px; max-width: 600px;">
+		<p>
+		The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+		indicated below, the Content is provided to you under the terms and conditions of the
+		<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License Version 1.0</a>
+		(&quot;EPL&quot;), and the <a href="http://www.eclipse.org/org/documents/edl-v10.html">
+		Eclipse Distribution License Version 1.0</a> (&quot;EDL&quot;).
+		For purposes of the EPL and EDL, &quot;Program&quot; will mean the Content.
+		</p>
+		
+		<p>
+		If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+		being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+		provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+		</p>
+	</div>
+	</div>
+</body>	
+</html>
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/python/pythonPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/python/pythonPlugin.js
new file mode 100644
index 0000000..ec6a308
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/python/pythonPlugin.js
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * @license
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials are made 
+ * available under the terms of the Eclipse Public License v1.0 
+ * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
+ * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*global esprima*/
+/*jslint amd:true*/
+define(['orion/plugin', 'orion/editor/stylers/text_x-python/syntax'], function(PluginProvider, mPython) {
+
+	/**
+	 * Plug-in headers
+	 */
+	var headers = {
+		name: "Orion Python Tool Support",
+		version: "1.0",
+		description: "This plugin provides Python tools support for Orion."
+	};
+	var provider = new PluginProvider(headers);
+
+	/**
+	 * Register the Python content type
+	 */
+	provider.registerServiceProvider("orion.core.contenttype", {}, {
+		contentTypes: [
+			{	id: "text/x-python",
+				"extends": "text/plain",
+				name: "Python",
+				extension: ["py", "rpy", "pyw", "cpy", "SConstruct", "Sconstruct", "sconstruct", "SConscript", "gyp", "gypi"]
+			}
+		] 
+	});
+
+	/**
+	 * Register syntax styling
+	 */
+	provider.registerServiceProvider("orion.edit.highlighter", {}, mPython.grammars[mPython.grammars.length - 1]);
+
+	provider.connect();
+});
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/ruby/rubyPlugin.html b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/ruby/rubyPlugin.html
new file mode 100644
index 0000000..ab3dc3c
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/ruby/rubyPlugin.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+    <meta name="copyright" content="Copyright (c) IBM Corporation and others 2014.">
+    <title>Orion Ruby Support</title>
+    <link rel="stylesheet" type="text/css" href="/settings/settings.css"/>
+	<script src="../../../requirejs/require.js"></script>
+	<script type="text/javascript">
+		/*global require*/
+		require({
+			baseUrl: '../../../',
+			paths: {
+				text: 'requirejs/text',
+				i18n: 'requirejs/i18n',
+				domReady: 'requirejs/domReady'
+			},
+			packages: [
+			]
+		});
+		require(["rubyPlugin.js"]);
+	</script>
+</head>
+
+<body id="orion-settings" class="orionPage" style="padding: 10px;">
+	<h2>Ruby Tools Support</h2>
+	<p>
+		This plugin provides Ruby tooling, including:
+	</p>
+	<ul>
+		<li><em>Editing</em> - an editor with syntax highlighting</li>
+	</ul>
+	<p>October 16, 2013</p>	
+	
+	<div class="split-selection-table">
+	<div class="sectionWrapper toolComposite" style="margin: 15px 30px 0px 15px; max-width: 600px;">
+		<div class="sectionAnchor sectionTitle layoutLeft">
+			License
+		</div>
+	</div>
+	<div class="sections sectionTable" style="margin: 0px 30px 0px 15px; padding-left: 6px; padding-right: 6px; max-width: 600px;">
+		<p>
+		The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+		indicated below, the Content is provided to you under the terms and conditions of the
+		<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License Version 1.0</a>
+		(&quot;EPL&quot;), and the <a href="http://www.eclipse.org/org/documents/edl-v10.html">
+		Eclipse Distribution License Version 1.0</a> (&quot;EDL&quot;).
+		For purposes of the EPL and EDL, &quot;Program&quot; will mean the Content.
+		</p>
+		
+		<p>
+		If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+		being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+		provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+		</p>
+	</div>
+	</div>
+</body>	
+</html>
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/ruby/rubyPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/ruby/rubyPlugin.js
new file mode 100644
index 0000000..57c9b90
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/ruby/rubyPlugin.js
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * @license
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials are made 
+ * available under the terms of the Eclipse Public License v1.0 
+ * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
+ * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*global esprima*/
+/*jslint amd:true*/
+define(['orion/plugin', 'orion/editor/stylers/text_x-ruby/syntax'], function(PluginProvider, mRuby) {
+
+	/**
+	 * Plug-in headers
+	 */
+	var headers = {
+		name: "Orion Ruby Tool Support",
+		version: "1.0",
+		description: "This plugin provides Ruby tools support for Orion."
+	};
+	var provider = new PluginProvider(headers);
+
+	/**
+	 * Register the Ruby content type
+	 */
+	provider.registerServiceProvider("orion.core.contenttype", {}, {
+		contentTypes: [
+			{	id: "text/x-ruby",
+				"extends": "text/plain",
+				name: "Ruby",
+				extension: ["rb", "rbx", "rjs", "Rakefile", "rake", "cgi", "fcgi", "gemspec", "irbrc", "capfile", "ru", "prawn", "Gemfile", "Guardfile", "Vagrantfile", "Appraisals", "Rantfile"]
+			}
+		] 
+	});
+
+	/**
+	 * Register syntax styling
+	 */
+	provider.registerServiceProvider("orion.edit.highlighter", {}, mRuby.grammars[mRuby.grammars.length - 1]);
+
+	provider.connect();
+});
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/yaml/yamlPlugin.html b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/yaml/yamlPlugin.html
new file mode 100644
index 0000000..786414b
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/yaml/yamlPlugin.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+    <meta name="copyright" content="Copyright (c) IBM Corporation and others 2013.">
+    <title>Orion YAML Support</title>
+    <link rel="stylesheet" type="text/css" href="/settings/settings.css"/>
+	<script src="../../../requirejs/require.js"></script>
+	<script type="text/javascript">
+		/*global require*/
+		require({
+			baseUrl: '../../../',
+			paths: {
+				text: 'requirejs/text',
+				i18n: 'requirejs/i18n',
+				domReady: 'requirejs/domReady'
+			},
+			packages: [
+			]
+		});
+		require(["yamlPlugin.js"]);
+	</script>
+</head>
+
+<body id="orion-settings" class="orionPage" style="padding: 10px;">
+	<h2>YAML Tools Support</h2>
+	<p>
+		This plugin provides YAML tooling, including:
+	</p>
+	<ul>
+		<li><em>Editing</em> - an editor with syntax highlighting</li>
+	</ul>
+	<p>October 16, 2013</p>	
+	
+	<div class="split-selection-table">
+	<div class="sectionWrapper toolComposite" style="margin: 15px 30px 0px 15px; max-width: 600px;">
+		<div class="sectionAnchor sectionTitle layoutLeft">
+			License
+		</div>
+	</div>
+	<div class="sections sectionTable" style="margin: 0px 30px 0px 15px; padding-left: 6px; padding-right: 6px; max-width: 600px;">
+		<p>
+		The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+		indicated below, the Content is provided to you under the terms and conditions of the
+		<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License Version 1.0</a>
+		(&quot;EPL&quot;), and the <a href="http://www.eclipse.org/org/documents/edl-v10.html">
+		Eclipse Distribution License Version 1.0</a> (&quot;EDL&quot;).
+		For purposes of the EPL and EDL, &quot;Program&quot; will mean the Content.
+		</p>
+		
+		<p>
+		If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+		being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+		provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+		</p>
+	</div>
+	</div>
+</body>	
+</html>
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/languages/yaml/yamlPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/yaml/yamlPlugin.js
new file mode 100644
index 0000000..aec246a
--- /dev/null
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/languages/yaml/yamlPlugin.js
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * @license
+ * Copyright (c) 2014 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials are made 
+ * available under the terms of the Eclipse Public License v1.0 
+ * (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
+ * License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*global esprima*/
+/*jslint amd:true*/
+define(['orion/plugin', 'orion/editor/stylers/text_x-yaml/syntax'], function(PluginProvider, mYAML) {
+
+	/**
+	 * Plug-in headers
+	 */
+	var headers = {
+		name: "Orion YAML Tool Support",
+		version: "1.0",
+		description: "This plugin provides YAML tools support for Orion."
+	};
+	var provider = new PluginProvider(headers);
+
+	/**
+	 * Register the YAML content type
+	 */
+	provider.registerServiceProvider("orion.core.contenttype", {}, {
+		contentTypes: [
+			{	id: "text/x-yaml",
+				"extends": "text/plain",
+				name: "YAML",
+				extension: ["yaml", "yml"]
+			}
+		] 
+	});
+
+	/**
+	 * Register syntax styling
+	 */
+	provider.registerServiceProvider("orion.edit.highlighter", {}, mYAML.grammars[mYAML.grammars.length - 1]);
+
+	provider.connect();
+});
diff --git a/bundles/org.eclipse.orion.client.ui/web/plugins/webEditingPlugin.js b/bundles/org.eclipse.orion.client.ui/web/plugins/webEditingPlugin.js
index 658c09e..2690894 100644
--- a/bundles/org.eclipse.orion.client.ui/web/plugins/webEditingPlugin.js
+++ b/bundles/org.eclipse.orion.client.ui/web/plugins/webEditingPlugin.js
@@ -12,22 +12,12 @@
 /*global define*/
 define([
 	'orion/plugin',
-	'orion/editor/cssContentAssist',
-	'orion/editor/htmlContentAssist',
-	'orion/editor/htmlGrammar',
-	'orion/editor/stylers/text_x-java-source/syntax',
-	'orion/editor/stylers/text_x-python/syntax',
-	'orion/editor/stylers/text_x-ruby/syntax',
-	'orion/editor/stylers/text_x-php/syntax',
-	'orion/editor/stylers/text_css/syntax',
-	'orion/editor/stylers/text_html/syntax',
-	'orion/editor/stylers/text_x-yaml/syntax',
 	'orion/editor/templates'
-], function(PluginProvider, cssContentAssist, htmlContentAssist, htmlGrammar, mJava, mPython, mRuby, mPHP, mCSS, mHTML, mYAML, templates) {
+], function(PluginProvider, templates) {
 	var headers = {
 		name: "Orion Web Editing Plugin",
 		version: "1.0",
-		description: "This plugin provides editor link support for the navigator and provides default editing capabilities for HTML, JavaScript, and CSS."
+		description: "This plugin provides editor link support for the navigator."
 	};
 
 	var provider = new PluginProvider(headers);
@@ -40,60 +30,17 @@
 				extension: ["txt"],
 				imageClass: "file-sprite-text modelDecorationSprite"
 			},
-			{	id: "text/html",
-				"extends": "text/plain",
-				name: "HTML",
-				extension: ["html", "htm"],
-				imageClass: "file-sprite-html modelDecorationSprite"
-			},
-			{	id: "text/css",
-				"extends": "text/plain",
-				name: "CSS",
-				extension: ["css"],
-				imageClass: "file-sprite-css modelDecorationSprite"
-			},
-			{	id: "application/json",
-				"extends": "text/plain",
-				name: "JSON",
-				extension: ["json"],
-				imageClass: "file-sprite-text modelDecorationSprite"
-			},
 			{	id: "application/xml",
 				"extends": "text/plain",
 				name: "XML",
 				extension: ["xml"],
 				imageClass: "file-sprite-xml"
 			},
-			{	id: "text/x-java-source",
-				"extends": "text/plain",
-				name: "Java",
-				extension: ["java"]
-			},
-			{	id: "text/x-python",
-				"extends": "text/plain",
-				name: "Python",
-				extension: ["py", "rpy", "pyw", "cpy", "SConstruct", "Sconstruct", "sconstruct", "SConscript", "gyp", "gypi"]
-			},
-			{	id: "text/x-ruby",
-				"extends": "text/plain",
-				name: "Ruby",
-				extension: ["rb", "rbx", "rjs", "Rakefile", "rake", "cgi", "fcgi", "gemspec", "irbrc", "capfile", "ru", "prawn", "Gemfile", "Guardfile", "Vagrantfile", "Appraisals", "Rantfile"]
-			},
-			{	id: "text/x-php",
-				"extends": "text/plain",
-				name: "PHP",
-				extension: ["php", "php3", "php4", "php5", "phpt", "phtml", "aw", "ctp"]
-			},
 			{	id: "text/x-markdown",
 				"extends": "text/plain",
 				name: "Markdown",
 				extension: ["md"]
 			},
-			{	id: "text/x-yaml",
-				"extends": "text/plain",
-				name: "YAML",
-				extension: ["yaml", "yml"]
-			},
 			{	id: "text/conf",
 				"extends": "text/plain",
 				name: "Conf",
@@ -179,27 +126,5 @@
 		}]
 	});
 
-	// Register content assist providers
-	provider.registerService("orion.edit.contentassist",
-		new cssContentAssist.CssContentAssistProvider(),
-		{	name: "CSS content assist",
-			contentType: ["text/css"]
-		});
-	provider.registerService("orion.edit.contentassist",
-		new htmlContentAssist.HTMLContentAssistProvider(),
-		{	name: "HTML content assist",
-			contentType: ["text/html"],
-			charTriggers: "<",
-			excludedStyles: "(comment.*|string.*)"
-		});
-
-	/**
-	 * Register syntax styling
-	 */
-	var grammars = mJava.grammars.concat(mCSS.grammars).concat(mHTML.grammars).concat(mPython.grammars).concat(mRuby.grammars).concat(mPHP.grammars).concat(mYAML.grammars);
-	grammars.forEach(function(current) {
-		provider.registerServiceProvider("orion.edit.highlighter", {}, current);
-	}.bind(this));
-
 	provider.connect();
 });
diff --git a/releng/org.eclipse.orion.client.releng/builder/orion.mini.xml b/releng/org.eclipse.orion.client.releng/builder/orion.mini.xml
index ef19ad6..c120f96 100644
--- a/releng/org.eclipse.orion.client.releng/builder/orion.mini.xml
+++ b/releng/org.eclipse.orion.client.releng/builder/orion.mini.xml
@@ -180,6 +180,13 @@
 		<optimize pageDir="shell" name="shellPage" bundle="org.eclipse.orion.client.ui" />
 		<optimize pageDir="shell/plugins" name="shellPagePlugin" bundle="org.eclipse.orion.client.ui" />
 		<optimize pageDir="javascript/plugins" name="javascriptPlugin" bundle="org.eclipse.orion.client.javascript" />
+		<optimize pageDir="plugins/languages/css" name="cssPlugin" bundle="org.eclipse.orion.client.ui" />
+		<optimize pageDir="plugins/languages/html" name="htmlPlugin" bundle="org.eclipse.orion.client.ui" />
+		<optimize pageDir="plugins/languages/java" name="javaPlugin" bundle="org.eclipse.orion.client.ui" />
+		<optimize pageDir="plugins/languages/php" name="phpPlugin" bundle="org.eclipse.orion.client.ui" />
+		<optimize pageDir="plugins/languages/python" name="pythonPlugin" bundle="org.eclipse.orion.client.ui" />
+		<optimize pageDir="plugins/languages/ruby" name="rubyPlugin" bundle="org.eclipse.orion.client.ui" />
+		<optimize pageDir="plugins/languages/yaml" name="yamlPlugin" bundle="org.eclipse.orion.client.ui" />
 		<optimize pageDir="plugins/site" name="sitePlugin" bundle="org.eclipse.orion.client.ui" />
 		<optimize pageDir="plugins" name="authenticationPlugin" bundle="org.eclipse.orion.client.ui" />
 		<optimize pageDir="plugins" name="csslintPlugin" bundle="org.eclipse.orion.client.ui" />