From abb1e4703b737757e20d1e7040943ba4e2483007 Mon Sep 17 00:00:00 2001 From: nightwing Date: Thu, 30 Jan 2014 21:39:44 +0400 Subject: [PATCH] add showLineNumbers fixes #1755, #892 --- lib/ace/editor.js | 1 + lib/ace/layer/gutter.js | 15 ++++++++++++++- lib/ace/virtual_renderer.js | 7 +++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 894afee3..4ecab579 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -2423,6 +2423,7 @@ config.defineOptions(Editor.prototype, "editor", { printMargin: "renderer", fadeFoldWidgets: "renderer", showFoldWidgets: "renderer", + showLineNumbers: "renderer", showGutter: "renderer", displayIndentGuides: "renderer", fontSize: "renderer", diff --git a/lib/ace/layer/gutter.js b/lib/ace/layer/gutter.js index 728bb488..620a2690 100644 --- a/lib/ace/layer/gutter.js +++ b/lib/ace/layer/gutter.js @@ -129,7 +129,7 @@ var Gutter = function(parentEl) { var firstLineNumber = session.$firstLineNumber; var lastLineNumber = 0; - var gutterRenderer = session.gutterRenderer; + var gutterRenderer = session.gutterRenderer || this.$renderer; var cell = null; var index = -1; @@ -231,6 +231,19 @@ var Gutter = function(parentEl) { this.$fixedWidth = false; + this.$showLineNumbers = true; + this.$renderer = ""; + this.setShowLineNumbers = function(show) { + this.$renderer = !show && { + getWidth: function() {return ""}, + getText: function() {return ""} + }; + }; + + this.getShowLineNumbers = function() { + return this.$showLineNumbers; + }; + this.$showFoldWidgets = true; this.setShowFoldWidgets = function(show) { if (show) diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index e15299d8..f1757d92 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -1619,6 +1619,13 @@ config.defineOptions(VirtualRenderer.prototype, "renderer", { set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)}, initialValue: true }, + showLineNumbers: { + set: function(show) { + this.$gutterLayer.setShowLineNumbers(show); + this.$loop.schedule(this.CHANGE_GUTTER); + }, + initialValue: true + }, displayIndentGuides: { set: function(show) { if (this.$textLayer.setDisplayIndentGuides(show))