From e4ba689e40451f1f4b99979f0ddeee5f42fa94de Mon Sep 17 00:00:00 2001 From: simurai Date: Mon, 15 Jun 2015 16:03:50 +0900 Subject: [PATCH 01/19] Replaces default editor font Only affects OS X --- src/config-schema.coffee | 4 ++-- static/text-editor-light.less | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/config-schema.coffee b/src/config-schema.coffee index fd35d2b07..71ab26386 100644 --- a/src/config-schema.coffee +++ b/src/config-schema.coffee @@ -103,12 +103,12 @@ module.exports = default: '' fontSize: type: 'integer' - default: 16 + default: 14 minimum: 1 maximum: 100 lineHeight: type: ['string', 'number'] - default: 1.3 + default: 1.4 showInvisibles: type: 'boolean' default: false diff --git a/static/text-editor-light.less b/static/text-editor-light.less index a8b99f0bc..819fc565f 100644 --- a/static/text-editor-light.less +++ b/static/text-editor-light.less @@ -4,8 +4,7 @@ atom-text-editor { display: block; - font-family: Inconsolata, Monaco, Consolas, 'DejaVu Sans Mono', monospace; - line-height: 1.3; + font-family: Menlo, Consolas, 'DejaVu Sans Mono', monospace; } atom-text-editor[mini] { From 3cdeaa8b51561e21ca268d377151e6942c04bc69 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 17 Jun 2015 10:57:21 -0700 Subject: [PATCH 02/19] Don't auto-indent when pasting text w/ no line breaks --- spec/text-editor-spec.coffee | 41 +++++++++++++++++++++++------------- src/selection.coffee | 2 +- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/spec/text-editor-spec.coffee b/spec/text-editor-spec.coffee index 53eb32acb..128fa5235 100644 --- a/spec/text-editor-spec.coffee +++ b/spec/text-editor-spec.coffee @@ -2929,34 +2929,45 @@ describe "TextEditor", -> beforeEach -> atom.config.set("editor.autoIndentOnPaste", true) - describe "when only whitespace precedes the cursor", -> + describe "when pasting multiple lines before any non-whitespace characters", -> it "auto-indents the lines spanned by the pasted text, based on the first pasted line", -> - expect(editor.indentationForBufferRow(5)).toBe(3) - atom.clipboard.write("a(x);\n b(x);\n c(x);\n", indentBasis: 0) editor.setCursorBufferPosition([5, 0]) editor.pasteText() - # Adjust the indentation of the pasted block - expect(editor.indentationForBufferRow(5)).toBe(3) - expect(editor.indentationForBufferRow(6)).toBe(4) - expect(editor.indentationForBufferRow(7)).toBe(5) + # Adjust the indentation of the pasted lines while preserving + # their indentation relative to each other. Also preserve the + # indentation of the following line. + expect(editor.lineTextForBufferRow(5)).toBe " a(x);" + expect(editor.lineTextForBufferRow(6)).toBe " b(x);" + expect(editor.lineTextForBufferRow(7)).toBe " c(x);" + expect(editor.lineTextForBufferRow(8)).toBe " current = items.shift();" - # Preserve the indentation of the next row - expect(editor.indentationForBufferRow(8)).toBe(3) + describe "when pasting a single line of text", -> + it "does not auto-indent the text", -> + atom.clipboard.write("a(x);", indentBasis: 0) + editor.setCursorBufferPosition([5, 0]) + editor.pasteText() - describe "when non-whitespace characters precede the cursor", -> - it "does not auto-indent the first line being pasted", -> + expect(editor.lineTextForBufferRow(5)).toBe "a(x); current = items.shift();" + expect(editor.lineTextForBufferRow(6)).toBe " current < pivot ? left.push(current) : right.push(current);" + + describe "when pasting on a line after non-whitespace characters", -> + it "does not auto-indent the affected line", -> + # Before the paste, the indentation is non-standard. editor.setText """ - if (x) { - y(); - } + if (x) { + y(); + } """ - atom.clipboard.write(" z();") + atom.clipboard.write(" z();\n h();") editor.setCursorBufferPosition([1, Infinity]) + + # The indentation of the non-standard line is unchanged. editor.pasteText() expect(editor.lineTextForBufferRow(1)).toBe(" y(); z();") + expect(editor.lineTextForBufferRow(2)).toBe(" h();") describe "when `autoIndentOnPaste` is false", -> beforeEach -> diff --git a/src/selection.coffee b/src/selection.coffee index b96139e98..6a4d4726f 100644 --- a/src/selection.coffee +++ b/src/selection.coffee @@ -366,7 +366,7 @@ class Selection extends Model indentAdjustment = @editor.indentLevelForLine(precedingText) - options.indentBasis @adjustIndent(remainingLines, indentAdjustment) - if options.autoIndent and not NonWhitespaceRegExp.test(precedingText) + if options.autoIndent and not NonWhitespaceRegExp.test(precedingText) and remainingLines.length > 0 autoIndentFirstLine = true firstLine = precedingText + firstInsertedLine desiredIndentLevel = @editor.languageMode.suggestedIndentForLineAtBufferRow(oldBufferRange.start.row, firstLine) From 64dfda572dd3db46ff841db9659f413a5f9b3b21 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 17 Jun 2015 12:07:42 -0700 Subject: [PATCH 03/19] Use raw buffer text (w/o invisibles) when testing decreaseIndentRegex --- spec/language-mode-spec.coffee | 12 ++++++++++++ src/language-mode.coffee | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/spec/language-mode-spec.coffee b/spec/language-mode-spec.coffee index 9c4fc2c1e..7ea4a1ae9 100644 --- a/spec/language-mode-spec.coffee +++ b/spec/language-mode-spec.coffee @@ -101,6 +101,18 @@ describe "LanguageMode", -> expect(languageMode.suggestedIndentForBufferRow(0)).toBe 0 expect(languageMode.suggestedIndentForBufferRow(1)).toBe 1 expect(languageMode.suggestedIndentForBufferRow(2)).toBe 2 + expect(languageMode.suggestedIndentForBufferRow(5)).toBe 3 + expect(languageMode.suggestedIndentForBufferRow(7)).toBe 2 + expect(languageMode.suggestedIndentForBufferRow(9)).toBe 1 + expect(languageMode.suggestedIndentForBufferRow(11)).toBe 1 + + it "does not take invisibles into account", -> + atom.config.set('editor.showInvisibles', true) + expect(languageMode.suggestedIndentForBufferRow(0)).toBe 0 + expect(languageMode.suggestedIndentForBufferRow(1)).toBe 1 + expect(languageMode.suggestedIndentForBufferRow(2)).toBe 2 + expect(languageMode.suggestedIndentForBufferRow(5)).toBe 3 + expect(languageMode.suggestedIndentForBufferRow(7)).toBe 2 expect(languageMode.suggestedIndentForBufferRow(9)).toBe 1 expect(languageMode.suggestedIndentForBufferRow(11)).toBe 1 diff --git a/src/language-mode.coffee b/src/language-mode.coffee index bf1e0e101..d99e69477 100644 --- a/src/language-mode.coffee +++ b/src/language-mode.coffee @@ -261,7 +261,8 @@ class LanguageMode desiredIndentLevel += 1 if increaseIndentRegex.testSync(precedingLine) and not @editor.isBufferRowCommented(precedingRow) return desiredIndentLevel unless decreaseIndentRegex = @decreaseIndentRegexForScopeDescriptor(scopeDescriptor) - desiredIndentLevel -= 1 if decreaseIndentRegex.testSync(tokenizedLine.text) + line = @buffer.lineForRow(bufferRow) + desiredIndentLevel -= 1 if decreaseIndentRegex.testSync(line) Math.max(desiredIndentLevel, 0) From 2f41fb300fa7b2ddc03263cf92ba931d5a4f1bce Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Wed, 17 Jun 2015 13:59:29 -0700 Subject: [PATCH 04/19] :arrow_up: notifications to fix error --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3d5affb9b..0576c4d11 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "link": "0.30.0", "markdown-preview": "0.150.0", "metrics": "0.51.0", - "notifications": "0.54.0", + "notifications": "0.55.0", "open-on-github": "0.37.0", "package-generator": "0.39.0", "release-notes": "0.53.0", From fae42ca107f1e2c6ac9fdcbba0acc0df53110d9b Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Wed, 17 Jun 2015 13:59:56 -0700 Subject: [PATCH 05/19] :arrow_up: autocomplete-plus@2.17.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0576c4d11..53b541427 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "autocomplete-atom-api": "0.9.0", "autocomplete-css": "0.7.2", "autocomplete-html": "0.7.2", - "autocomplete-plus": "2.17.3", + "autocomplete-plus": "2.17.4", "autocomplete-snippets": "1.7.0", "autoflow": "0.25.0", "autosave": "0.21.0", From 8890f78fae0f6d2e9c490d4e4fdcf5e5f2957408 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 17 Jun 2015 23:04:31 +0200 Subject: [PATCH 06/19] :arrow_up: exception-reporting --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 53b541427..59d3c9b8e 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "deprecation-cop": "0.52.0", "dev-live-reload": "0.46.0", "encoding-selector": "0.20.0", - "exception-reporting": "0.24.0", + "exception-reporting": "0.25.0", "find-and-replace": "0.173.0", "fuzzy-finder": "0.87.0", "git-diff": "0.55.0", From 17235e706b51114f51d31e788bf489bc3a6528ef Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Wed, 17 Jun 2015 14:11:12 -0700 Subject: [PATCH 07/19] :arrow_up: notifications@0.56.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 59d3c9b8e..9e5536f0e 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "link": "0.30.0", "markdown-preview": "0.150.0", "metrics": "0.51.0", - "notifications": "0.55.0", + "notifications": "0.56.0", "open-on-github": "0.37.0", "package-generator": "0.39.0", "release-notes": "0.53.0", From 309410f3f43594deb7e583be7183f975448fa9f4 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 17 Jun 2015 14:42:32 -0700 Subject: [PATCH 08/19] Prepare 0.211 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e5536f0e..fab07be6a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "0.210.0", + "version": "0.211.0", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From 68cc5154d64ea859aa7810f59721333bcc417142 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 18 Jun 2015 08:33:51 -0700 Subject: [PATCH 09/19] :arrow_up: language-text@0.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fab07be6a..7a50b0de2 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "language-shellscript": "0.15.0", "language-source": "0.9.0", "language-sql": "0.16.0", - "language-text": "0.6.0", + "language-text": "0.7.0", "language-todo": "0.23.0", "language-toml": "0.16.0", "language-xml": "0.30.0", From 4675fc52e2f11edafe8f272a865e8ddb59a91b17 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 18 Jun 2015 08:35:27 -0700 Subject: [PATCH 10/19] :arrow_up: language-go@0.27 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a50b0de2..2f1577c23 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "language-css": "0.30.0", "language-gfm": "0.77.0", "language-git": "0.10.0", - "language-go": "0.26.0", + "language-go": "0.27.0", "language-html": "0.40.0", "language-hyperlink": "0.13.0", "language-java": "0.15.0", From 2017e3fe235f330518273421d0b9ead3351859e1 Mon Sep 17 00:00:00 2001 From: simurai Date: Fri, 19 Jun 2015 10:22:26 +0900 Subject: [PATCH 11/19] Increase default line height --- src/config-schema.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config-schema.coffee b/src/config-schema.coffee index 71ab26386..43bf41403 100644 --- a/src/config-schema.coffee +++ b/src/config-schema.coffee @@ -108,7 +108,7 @@ module.exports = maximum: 100 lineHeight: type: ['string', 'number'] - default: 1.4 + default: 1.44 showInvisibles: type: 'boolean' default: false From 351b407751650d9383ff88d24a87c738c9955f6f Mon Sep 17 00:00:00 2001 From: simurai Date: Fri, 19 Jun 2015 15:57:09 +0900 Subject: [PATCH 12/19] Add style.less examples that can get uncommented --- dot-atom/styles.less | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dot-atom/styles.less b/dot-atom/styles.less index 50c5066e6..a9e374058 100644 --- a/dot-atom/styles.less +++ b/dot-atom/styles.less @@ -8,18 +8,18 @@ * http://www.lesscss.org */ +// style the background color of the tree view .tree-view { - + // background-color: whitesmoke; } -// style the background and foreground colors on the atom-text-editor-element -// itself +// style the background and foreground colors on the atom-text-editor-element itself atom-text-editor { - + // color: white; + // background-color: hsl(180, 24%, 12%); } -// To style other content in the text editor's shadow DOM, use the ::shadow -// expression +// To style other content in the text editor's shadow DOM, use the ::shadow expression atom-text-editor::shadow .cursor { - + // border-color: red; } From d922c1804fca6bdf49680ab2e5cbff20edd7e1b1 Mon Sep 17 00:00:00 2001 From: simurai Date: Fri, 19 Jun 2015 16:05:03 +0900 Subject: [PATCH 13/19] Update note about Less Mentioning that you can use plain CSS should make it less intimitaing. --- dot-atom/styles.less | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dot-atom/styles.less b/dot-atom/styles.less index a9e374058..bb8eb3146 100644 --- a/dot-atom/styles.less +++ b/dot-atom/styles.less @@ -4,8 +4,7 @@ * This stylesheet is loaded when Atom starts up and is reloaded automatically * when it is changed. * - * If you are unfamiliar with LESS, you can read more about it here: - * http://www.lesscss.org + * Uncomment the examples below to test or add your own CSS or Less. */ // style the background color of the tree view From d7156ff387eb51e3b2a201a767cb287c849243b7 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Fri, 19 Jun 2015 10:24:48 +0200 Subject: [PATCH 14/19] Remove event listeners from orphaned gutters --- spec/text-editor-component-spec.coffee | 18 ++++++++++++++++++ src/gutter-container-component.coffee | 7 ++++++- src/line-number-gutter-component.coffee | 4 ++++ src/text-editor-component.coffee | 1 + 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/spec/text-editor-component-spec.coffee b/spec/text-editor-component-spec.coffee index 31467bed4..a9e98efc1 100644 --- a/spec/text-editor-component-spec.coffee +++ b/spec/text-editor-component-spec.coffee @@ -743,6 +743,16 @@ describe "TextEditorComponent", -> beforeEach -> gutterNode = componentNode.querySelector('.gutter') + describe "when the component is destroyed", -> + it "stops listening for folding events", -> + component.destroy() + + lineNumber = component.lineNumberNodeForScreenRow(1) + target = lineNumber.querySelector('.icon-right') + target.dispatchEvent(buildClickEvent(target)) + + expect(nextAnimationFrame).toBe(noAnimationFrame) + it "folds and unfolds the block represented by the fold indicator when clicked", -> expect(lineNumberHasClass(1, 'folded')).toBe false @@ -1727,6 +1737,14 @@ describe "TextEditorComponent", -> beforeEach -> gutterNode = componentNode.querySelector('.gutter') + describe "when the component is destroyed", -> + it "stops listening for selection events", -> + component.destroy() + + gutterNode.dispatchEvent(buildMouseEvent('mousedown', clientCoordinatesForScreenRowInGutter(1))) + + expect(editor.getSelectedScreenRange()).toEqual [[0, 0], [0, 0]] + describe "when the gutter is clicked", -> it "selects the clicked row", -> gutterNode.dispatchEvent(buildMouseEvent('mousedown', clientCoordinatesForScreenRowInGutter(4))) diff --git a/src/gutter-container-component.coffee b/src/gutter-container-component.coffee index 5fa2f85f4..92ef5e8b6 100644 --- a/src/gutter-container-component.coffee +++ b/src/gutter-container-component.coffee @@ -16,7 +16,12 @@ class GutterContainerComponent @domNode = document.createElement('div') @domNode.classList.add('gutter-container') - @domNode.style.display = 'flex'; + @domNode.style.display = 'flex' + + destroy: -> + for {name, component} in @gutterComponents + component.destroy?() + return getDomNode: -> @domNode diff --git a/src/line-number-gutter-component.coffee b/src/line-number-gutter-component.coffee index 351275f63..7675493de 100644 --- a/src/line-number-gutter-component.coffee +++ b/src/line-number-gutter-component.coffee @@ -18,6 +18,10 @@ class LineNumberGutterComponent @domNode.addEventListener 'click', @onClick @domNode.addEventListener 'mousedown', @onMouseDown + destroy: -> + @domNode.removeEventListener 'click', @onClick + @domNode.removeEventListener 'mousedown', @onMouseDown + getDomNode: -> @domNode diff --git a/src/text-editor-component.coffee b/src/text-editor-component.coffee index 66996a996..b8fe39976 100644 --- a/src/text-editor-component.coffee +++ b/src/text-editor-component.coffee @@ -106,6 +106,7 @@ class TextEditorComponent @mounted = false @disposables.dispose() @presenter.destroy() + @gutterContainerComponent?.destroy() window.removeEventListener 'resize', @requestHeightAndWidthMeasurement getDomNode: -> From 533abc5a63bd19040f901cd22d4a247b7e6946e8 Mon Sep 17 00:00:00 2001 From: simurai Date: Fri, 19 Jun 2015 21:31:36 +0900 Subject: [PATCH 15/19] Increase default line height even a bit more --- src/config-schema.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config-schema.coffee b/src/config-schema.coffee index 43bf41403..6e8fbfdb7 100644 --- a/src/config-schema.coffee +++ b/src/config-schema.coffee @@ -108,7 +108,7 @@ module.exports = maximum: 100 lineHeight: type: ['string', 'number'] - default: 1.44 + default: 1.5 showInvisibles: type: 'boolean' default: false From 67cf747a20846436261322b1ec6856b662196cd3 Mon Sep 17 00:00:00 2001 From: simurai Date: Fri, 19 Jun 2015 21:37:57 +0900 Subject: [PATCH 16/19] :memo: Add back link to the Less docs --- dot-atom/styles.less | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dot-atom/styles.less b/dot-atom/styles.less index bb8eb3146..b1e02ca5c 100644 --- a/dot-atom/styles.less +++ b/dot-atom/styles.less @@ -4,7 +4,9 @@ * This stylesheet is loaded when Atom starts up and is reloaded automatically * when it is changed. * - * Uncomment the examples below to test or add your own CSS or Less. + * Uncomment the examples below to try it out. Or add your own CSS or Less. + * If you are unfamiliar with Less, you can read more about it here: + * http://lesscss.org */ // style the background color of the tree view From cfd61afd38187c163b29834222230d0f31a06469 Mon Sep 17 00:00:00 2001 From: simurai Date: Fri, 19 Jun 2015 23:21:36 +0900 Subject: [PATCH 17/19] :memo: Update styles.less copy --- dot-atom/styles.less | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dot-atom/styles.less b/dot-atom/styles.less index b1e02ca5c..a321469e7 100644 --- a/dot-atom/styles.less +++ b/dot-atom/styles.less @@ -2,13 +2,19 @@ * Your Stylesheet * * This stylesheet is loaded when Atom starts up and is reloaded automatically - * when it is changed. + * when it is changed and saved. * - * Uncomment the examples below to try it out. Or add your own CSS or Less. + * Add your own CSS or Less to fully customize Atom. * If you are unfamiliar with Less, you can read more about it here: * http://lesscss.org */ + +/* + * Examples + * (To see them, uncomment and save) + */ + // style the background color of the tree view .tree-view { // background-color: whitesmoke; From af42c6bbab302ae17135c12cdc5fedf6478654ac Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Fri, 19 Jun 2015 09:10:55 -0600 Subject: [PATCH 18/19] :arrow_up: language-css@0.31.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2f1577c23..94ad87f80 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,7 @@ "language-clojure": "0.15.0", "language-coffee-script": "0.41.0", "language-csharp": "0.6.0", - "language-css": "0.30.0", + "language-css": "0.31.0", "language-gfm": "0.77.0", "language-git": "0.10.0", "language-go": "0.27.0", From 82fe556af855f7ad2c8e7cae09891275babc2f58 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 19 Jun 2015 09:17:22 -0700 Subject: [PATCH 19/19] :arrow_up: language-clojure@0.16 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 94ad87f80..0d1c07fae 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "whitespace": "0.30.0", "wrap-guide": "0.35.0", "language-c": "0.45.0", - "language-clojure": "0.15.0", + "language-clojure": "0.16.0", "language-coffee-script": "0.41.0", "language-csharp": "0.6.0", "language-css": "0.31.0",