From 244e1462e8f16ab8257681ff34807ae39388766b Mon Sep 17 00:00:00 2001 From: nightwing Date: Mon, 26 Aug 2013 18:46:42 +0400 Subject: [PATCH] add fixedWidthGutter option --- lib/ace/editor.js | 1 + lib/ace/layer/gutter.js | 4 +++- lib/ace/virtual_renderer.js | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 0b871417..04918547 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -2385,6 +2385,7 @@ config.defineOptions(Editor.prototype, "editor", { maxLines: "renderer", minLines: "renderer", scrollPastEnd: "renderer", + fixedWidthGutter: "renderer", scrollSpeed: "$mouseHandler", dragDelay: "$mouseHandler", diff --git a/lib/ace/layer/gutter.js b/lib/ace/layer/gutter.js index 536788c2..d5d64acc 100644 --- a/lib/ace/layer/gutter.js +++ b/lib/ace/layer/gutter.js @@ -168,7 +168,7 @@ var Gutter = function(parentEl) { this.element = dom.setInnerHtml(this.element, html.join("")); this.element.style.height = config.minHeight + "px"; - if (this.session.$useWrapMode) + if (this.$fixedWidth || this.session.$useWrapMode) lastLineNumber = this.session.getLength(); var gutterWidth = ("" + lastLineNumber).length * config.characterWidth; @@ -181,6 +181,8 @@ var Gutter = function(parentEl) { } }; + this.$fixedWidth = false; + this.$showFoldWidgets = true; this.setShowFoldWidgets = function(show) { if (show) diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index c8cb0ed0..ab529919 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -1655,6 +1655,12 @@ config.defineOptions(VirtualRenderer.prototype, "renderer", { }, initialValue: 0, handlesSet: true + }, + fixedWidthGutter: { + set: function(val) { + this.gutterLayer.fixedWidth = !!val; + this.$loop.schedule(this.CHANGE_GUTTER); + } } });