From ec4bb162c301e74b6141ffd9d249153fc3e3a7eb Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Mon, 25 Mar 2013 10:38:06 -0700 Subject: [PATCH] Add `editor.showLineNumbers` config option Also adds toggle-line-numbers command. Closes #377 --- spec/app/editor-spec.coffee | 6 ++++++ src/app/editor.coffee | 3 +++ src/app/gutter.coffee | 3 +++ 3 files changed, 12 insertions(+) diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index 48647ef19..a642e3559 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -1707,6 +1707,12 @@ describe "Editor", -> miniEditor.setText(" a line with tabs\tand spaces ") expect(miniEditor.renderedLines.find('.line').text()).toBe "#{space}a line with tabs#{tab} and spaces#{space}" + describe "when config.editor.showLineNumbers is false", -> + it "doesn't render any line numbers", -> + expect(editor.gutter.lineNumbers).toBeVisible() + config.set("editor.showLineNumbers", false) + expect(editor.gutter.lineNumbers).not.toBeVisible() + describe "gutter line highlighting", -> beforeEach -> editor.attachToDom(heightInLines: 5.5) diff --git a/src/app/editor.coffee b/src/app/editor.coffee index b2bdcb83f..1a4564f75 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -16,6 +16,7 @@ class Editor extends View fontSize: 20 showInvisibles: false showIndentGuide: false + showLineNumbers: true autoIndent: true autoIndentOnPaste: false nonWordCharacters: "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?-" @@ -156,6 +157,7 @@ class Editor extends View 'editor:duplicate-line': @duplicateLine 'editor:toggle-indent-guide': => config.set('editor.showIndentGuide', !config.get('editor.showIndentGuide')) 'editor:save-debug-snapshot': @saveDebugSnapshot + 'editor:toggle-line-numbers': => config.set('editor.showLineNumbers', !config.get('editor.showLineNumbers')) documentation = {} for name, method of editorBindings @@ -316,6 +318,7 @@ class Editor extends View backwardsScanInRange: (args...) -> @getBuffer().backwardsScanInRange(args...) configure: -> + @observeConfig 'editor.showLineNumbers', (showLineNumbers) => @gutter.setShowLineNumbers(showLineNumbers) @observeConfig 'editor.showInvisibles', (showInvisibles) => @setShowInvisibles(showInvisibles) @observeConfig 'editor.showIndentGuide', (showIndentGuide) => @setShowIndentGuide(showIndentGuide) @observeConfig 'editor.invisibles', (invisibles) => @setInvisibles(invisibles) diff --git a/src/app/gutter.coffee b/src/app/gutter.coffee index 11f54e5dc..2e19e09c6 100644 --- a/src/app/gutter.coffee +++ b/src/app/gutter.coffee @@ -24,6 +24,9 @@ class Gutter extends View editor: -> @parentView + setShowLineNumbers: (showLineNumbers) -> + if showLineNumbers then @lineNumbers.show() else @lineNumbers.hide() + updateLineNumbers: (changes, renderFrom, renderTo) -> if renderFrom < @firstScreenRow or renderTo > @lastScreenRow performUpdate = true