Title: [98236] trunk/Source/WebCore
Revision
98236
Author
[email protected]
Date
2011-10-24 06:52:51 -0700 (Mon, 24 Oct 2011)

Log Message

Web Inspector: Make indent configurable
https://bugs.webkit.org/show_bug.cgi?id=69986

Add a setting to choose an indent from "8 spaces", "4 spaces" (default), "2 spaces", or "Tab character".

Patch by Nikita Vasilyev <[email protected]> on 2011-10-21
Reviewed by Pavel Feldman.

* English.lproj/localizedStrings.js:
* inspector/front-end/SettingsScreen.js:
(WebInspector.SettingsScreen):
(WebInspector.SettingsScreen.prototype._createSelectSetting.get p):
(WebInspector.SettingsScreen.prototype._createSelectSetting.changeListener):
* inspector/front-end/TextEditorModel.js:
(WebInspector.TextEditorModel):
* inspector/front-end/TextViewer.js:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (98235 => 98236)


--- trunk/Source/WebCore/ChangeLog	2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/ChangeLog	2011-10-24 13:52:51 UTC (rev 98236)
@@ -1,3 +1,21 @@
+2011-10-21  Nikita Vasilyev  <[email protected]>
+
+        Web Inspector: Make indent configurable
+        https://bugs.webkit.org/show_bug.cgi?id=69986
+
+        Add a setting to choose an indent from "8 spaces", "4 spaces" (default), "2 spaces", or "Tab character".
+
+        Reviewed by Pavel Feldman.
+
+        * English.lproj/localizedStrings.js:
+        * inspector/front-end/SettingsScreen.js:
+        (WebInspector.SettingsScreen):
+        (WebInspector.SettingsScreen.prototype._createSelectSetting.get p):
+        (WebInspector.SettingsScreen.prototype._createSelectSetting.changeListener):
+        * inspector/front-end/TextEditorModel.js:
+        (WebInspector.TextEditorModel):
+        * inspector/front-end/TextViewer.js:
+
 2011-10-17  Andrey Kosyakov  <[email protected]>
 
         Web Inspector: add "Add to Watch" option to context menu on selection in source frame

Modified: trunk/Source/WebCore/English.lproj/localizedStrings.js


(Binary files differ)

Modified: trunk/Source/WebCore/inspector/front-end/SettingsScreen.js (98235 => 98236)


--- trunk/Source/WebCore/inspector/front-end/SettingsScreen.js	2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/inspector/front-end/SettingsScreen.js	2011-10-24 13:52:51 UTC (rev 98236)
@@ -50,6 +50,13 @@
         [ WebInspector.StylesSidebarPane.ColorFormat.HSL, "HSL: hsl(300, 80%, 90%)" ] ], WebInspector.settings.colorFormat));
     p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Show user agent styles"), WebInspector.settings.showUserAgentStyles));
 
+    p = this._appendSection(WebInspector.UIString("Text editor"));
+    p.appendChild(this._createSelectSetting(WebInspector.UIString("Indent"), [
+        [ WebInspector.TextEditorModel.Indent.TwoSpaces, WebInspector.UIString("2 spaces") ],
+        [ WebInspector.TextEditorModel.Indent.FourSpaces, WebInspector.UIString("4 spaces") ],
+        [ WebInspector.TextEditorModel.Indent.EightSpaces, WebInspector.UIString("8 spaces") ],
+        [ WebInspector.TextEditorModel.Indent.TabCharacter, WebInspector.UIString("Tab character") ] ], WebInspector.settings.textEditorIndent));
+
     if (Preferences.canDisableCache) {
         p = this._appendSection(WebInspector.UIString("Network"), true);
         p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Disable cache"), WebInspector.settings.cacheDisabled));
@@ -65,7 +72,7 @@
     if (Preferences.haveExtensions) {
         var handlerSelector = new WebInspector.HandlerSelector(WebInspector.openAnchorLocationRegistry);
         p = this._appendSection(WebInspector.UIString("Extensions"), true);
-        p.appendChild(this._createCustomSetting(WebInspector.UIString("Open links in..."), handlerSelector.element));
+        p.appendChild(this._createCustomSetting(WebInspector.UIString("Open links in"), handlerSelector.element));
     }
     var table = document.createElement("table");
     table.className = "help-table";
@@ -118,6 +125,35 @@
         return p;
     },
 
+    _createSelectSetting: function(name, options, setting)
+    {
+        var fieldsetElement = document.createElement("fieldset");
+        fieldsetElement.textContent = name;
+
+        var select = document.createElement("select");
+        var settingValue = setting.get();
+
+        for (var i = 0; i < options.length; ++i) {
+            var option = options[i];
+            select.add(new Option(option[1], option[0]));
+            if (settingValue === option[0])
+                select.selectedIndex = i;
+
+        }
+
+        function changeListener(e)
+        {
+            setting.set(e.target.value);
+        }
+
+        select.addEventListener("change", changeListener, false);
+        fieldsetElement.appendChild(select);
+
+        var p = document.createElement("p");
+        p.appendChild(fieldsetElement);
+        return p;
+    },
+
     _createRadioSetting: function(name, options, setting)
     {
         var pp = document.createElement("p");
@@ -157,11 +193,12 @@
 
     _createCustomSetting: function(name, element)
     {
-        var div = document.createElement("div");
-        var p = div.createChild("p");
-        p.textContent = name;
-        div.appendChild(element);
-        return div;
+        var p = document.createElement("p");
+        var fieldsetElement = document.createElement("fieldset");
+        fieldsetElement.textContent = name;
+        fieldsetElement.appendChild(element);
+        p.appendChild(fieldsetElement);
+        return p;
     }
 };
 

Modified: trunk/Source/WebCore/inspector/front-end/TextEditorModel.js (98235 => 98236)


--- trunk/Source/WebCore/inspector/front-end/TextEditorModel.js	2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/inspector/front-end/TextEditorModel.js	2011-10-24 13:52:51 UTC (rev 98236)
@@ -66,8 +66,17 @@
     this._undoStack = [];
     this._noPunctuationRegex = /[^ !%&()*+,-.:;<=>?\[\]\^{|}~]+/;
     this._lineBreak = "\n";
+
+    WebInspector.settings.textEditorIndent = WebInspector.settings.createSetting("indent", WebInspector.TextEditorModel.Indent.FourSpaces);
 }
 
+WebInspector.TextEditorModel.Indent = {
+    TwoSpaces: "  ",
+    FourSpaces: "    ",
+    EightSpaces: "        ",
+    TabCharacter: "\t"
+}
+
 WebInspector.TextEditorModel.prototype = {
     set changeListener(changeListener)
     {

Modified: trunk/Source/WebCore/inspector/front-end/TextViewer.js (98235 => 98236)


--- trunk/Source/WebCore/inspector/front-end/TextViewer.js	2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/inspector/front-end/TextViewer.js	2011-10-24 13:52:51 UTC (rev 98236)
@@ -1061,7 +1061,7 @@
         if (range.startLine > range.endLine || (range.startLine === range.endLine && range.startColumn > range.endColumn))
             range = new WebInspector.TextRange(range.endLine, range.endColumn, range.startLine, range.startColumn);
 
-        var newRange = this._setText(range, "\t");
+        var newRange = this._setText(range, WebInspector.settings.textEditorIndent.get());
 
         this._exitTextChangeMode(range, newRange);
         this.endUpdates();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to