From 6d24aaf497edd2a54c2d9d50499fd586fea46b65 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Fri, 20 Feb 2015 17:53:14 -0800 Subject: [PATCH 01/21] Make sure that GitRepositoryProvider.repositoryForDirectorySync() returns null rather than throws. The UI locks up if this method does not return. --- spec/git-repository-provider-spec.coffee | 30 ++++++++++++++++++++++++ src/git-repository-provider.coffee | 8 +++++++ 2 files changed, 38 insertions(+) diff --git a/spec/git-repository-provider-spec.coffee b/spec/git-repository-provider-spec.coffee index 7d77adc36..c61327321 100644 --- a/spec/git-repository-provider-spec.coffee +++ b/spec/git-repository-provider-spec.coffee @@ -54,3 +54,33 @@ describe "GitRepositoryProvider", -> directory = new Directory dirPath provider.repositoryForDirectory(directory).then (result) -> expect(result).toBe null + + describe "when specified a Directory that throws an exception when explored", -> + it "catches the exception and returns null for the sync implementation", -> + provider = new GitRepositoryProvider atom.project + + # Tolerate an implementation of Directory whose sync methods are unsupported. + subdirectory = existsSync: -> + spyOn(subdirectory, "existsSync").andThrow("sync method not supported") + directory = getSubdirectory: -> + spyOn(directory, "getSubdirectory").andReturn(subdirectory) + + provider = new GitRepositoryProvider atom.project + repo = provider.repositoryForDirectorySync(directory) + expect(repo).toBe null + expect(directory.getSubdirectory).toHaveBeenCalledWith(".git") + + it "catches the exception and returns a Promise that resolves to null for the async implementation", -> + provider = new GitRepositoryProvider atom.project + + # Tolerate an implementation of Directory whose sync methods are unsupported. + subdirectory = existsSync: -> + spyOn(subdirectory, "existsSync").andThrow("sync method not supported") + directory = getSubdirectory: -> + spyOn(directory, "getSubdirectory").andReturn(subdirectory) + + waitsForPromise -> + provider = new GitRepositoryProvider atom.project + provider.repositoryForDirectory(directory).then (repo) -> + expect(repo).toBe null + expect(directory.getSubdirectory).toHaveBeenCalledWith(".git") diff --git a/src/git-repository-provider.coffee b/src/git-repository-provider.coffee index 210197599..d26b9301a 100644 --- a/src/git-repository-provider.coffee +++ b/src/git-repository-provider.coffee @@ -51,6 +51,14 @@ class GitRepositoryProvider # * {GitRepository} if the given directory has a Git repository. # * `null` if the given directory does not have a Git repository. repositoryForDirectorySync: (directory) -> + # Ensure that this method does not throw. + try + @repositoryForDirectorySyncInternal(directory) + catch e + # TODO: Log error. + null + + repositoryForDirectorySyncInternal: (directory) -> # Only one GitRepository should be created for each .git folder. Therefore, # we must check directory and its parent directories to find the nearest # .git folder. From 6832845b91f7a7ae4c58b58ffee0e430cf22f44d Mon Sep 17 00:00:00 2001 From: Suyash Date: Sun, 22 Feb 2015 13:43:43 +0530 Subject: [PATCH 02/21] :memo: fix grammatical errors in linux build file --- docs/build-instructions/linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/build-instructions/linux.md b/docs/build-instructions/linux.md index 83815dd4a..7b95e8a17 100644 --- a/docs/build-instructions/linux.md +++ b/docs/build-instructions/linux.md @@ -18,7 +18,7 @@ Ubuntu LTS 12.04 64-bit is the recommended platform. * `sudo apt-get install build-essential git libgnome-keyring-dev fakeroot` * Instructions for [Node.js](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#ubuntu-mint-elementary-os). - * Make sure the command `node` is available after Node.js installation (some sytems install it as `nodejs`). + * Make sure the command `node` is available after Node.js installation (some systems install it as `nodejs`). * Use `which node` to check if it is available. * Use `sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10` to update it. @@ -74,7 +74,7 @@ If you have problems with permissions don't forget to prefix with `sudo` To use the newly installed Atom, quit and restart all running Atom instances. -5. *Optionally*, you may generate distributable packages of Atom at `$TMPDIR/atom-build`. Currenty, `.deb` and `.rpm` package types are supported. To create a `.deb` package run: +5. *Optionally*, you may generate distributable packages of Atom at `$TMPDIR/atom-build`. Currently, `.deb` and `.rpm` package types are supported. To create a `.deb` package run: ```sh script/grunt mkdeb @@ -123,7 +123,7 @@ and restart Atom. If Atom now works fine, you can make this setting permanent: echo 32768 | sudo tee -a /proc/sys/fs/inotify/max_user_watches ``` -See also https://github.com/atom/atom/issues/2082. +See also [#2082](https://github.com/atom/atom/issues/2082). ### /usr/bin/env: node: No such file or directory From 37b41835429822913107e58024c6118820df5b9e Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Sun, 22 Feb 2015 13:02:08 +0100 Subject: [PATCH 03/21] :racehorse: Improve mergeIntersectingSelections performance Order selections first and intersect only with the last one. This brings the cost of mergeIntersectingSelections down to O(n log n). --- src/text-editor.coffee | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/text-editor.coffee b/src/text-editor.coffee index b86b97d17..19334a813 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -2206,11 +2206,18 @@ class TextEditor extends Model result = fn() @suppressSelectionMerging = false + findIntersectingSelection = (elements, selection) -> + return if elements.length == 0 + + otherSelection = _.last(elements) + exclusive = not selection.isEmpty() and not otherSelection.isEmpty() + intersects = otherSelection.intersectsWith(selection, exclusive) + + return otherSelection if intersects + + reducer = (disjointSelections, selection) -> - intersectingSelection = _.find disjointSelections, (otherSelection) -> - exclusive = not selection.isEmpty() and not otherSelection.isEmpty() - intersects = otherSelection.intersectsWith(selection, exclusive) - intersects + intersectingSelection = findIntersectingSelection(disjointSelections, selection) if intersectingSelection? intersectingSelection.merge(selection, options) @@ -2218,7 +2225,7 @@ class TextEditor extends Model else disjointSelections.concat([selection]) - _.reduce(@getSelections(), reducer, []) + _.reduce(@getSelectionsOrderedByBufferPosition(), reducer, []) # Add a {Selection} based on the given {Marker}. # From 7fe313552636cb657aaad0ddf98c8cb88c6086fc Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Sun, 22 Feb 2015 15:04:37 +0100 Subject: [PATCH 04/21] :art: Give code a better structure --- src/text-editor.coffee | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 19334a813..bd3f76190 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -2206,26 +2206,19 @@ class TextEditor extends Model result = fn() @suppressSelectionMerging = false - findIntersectingSelection = (elements, selection) -> - return if elements.length == 0 - - otherSelection = _.last(elements) - exclusive = not selection.isEmpty() and not otherSelection.isEmpty() - intersects = otherSelection.intersectsWith(selection, exclusive) - - return otherSelection if intersects - - reducer = (disjointSelections, selection) -> - intersectingSelection = findIntersectingSelection(disjointSelections, selection) + adjacentSelection = _.last(disjointSelections) + exclusive = not selection.isEmpty() and not adjacentSelection.isEmpty() + intersects = adjacentSelection.intersectsWith(selection, exclusive) - if intersectingSelection? - intersectingSelection.merge(selection, options) + if intersects + adjacentSelection.merge(selection, options) disjointSelections else disjointSelections.concat([selection]) - _.reduce(@getSelectionsOrderedByBufferPosition(), reducer, []) + [head, tail...] = @getSelectionsOrderedByBufferPosition() + _.reduce(tail, reducer, [head]) # Add a {Selection} based on the given {Marker}. # From 11b2b4f55dbfba5eccc9f0ad6befce7b23a82abf Mon Sep 17 00:00:00 2001 From: "J. B. Rainsberger" Date: Sun, 22 Feb 2015 10:56:25 -0400 Subject: [PATCH 05/21] :lipstick: Removes last reference to obsolete term 'Activation Events'. --- docs/your-first-package.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/your-first-package.md b/docs/your-first-package.md index eb882abc7..42aca7c31 100644 --- a/docs/your-first-package.md +++ b/docs/your-first-package.md @@ -72,7 +72,7 @@ command palette or by pressing `ctrl-alt-cmd-l`. Now open the command panel and search for the `ascii-art:convert` command. But it's not there! To fix this, open _package.json_ and find the property called -`activationCommands`. Activation Events speed up load time by allowing Atom to +`activationCommands`. Activation Commands speed up Atom's load time by allowing it to delay a package's activation until it's needed. So remove the existing command and add `ascii-art:convert` to the `activationCommands` array: From 947df9a6cca39d64116b896eaa5c14e1e64e9321 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Sun, 22 Feb 2015 20:35:51 -0800 Subject: [PATCH 06/21] Print exception via console.warn(). --- src/git-repository-provider.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/git-repository-provider.coffee b/src/git-repository-provider.coffee index d26b9301a..66f53b5f5 100644 --- a/src/git-repository-provider.coffee +++ b/src/git-repository-provider.coffee @@ -55,7 +55,7 @@ class GitRepositoryProvider try @repositoryForDirectorySyncInternal(directory) catch e - # TODO: Log error. + console.warn "Error checking for Git repository for '#{directory.getPath()}'", e.stack null repositoryForDirectorySyncInternal: (directory) -> From eb06cb7f97157ba1d08a4f88410b81d2a0fc99c9 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Sun, 22 Feb 2015 20:36:14 -0800 Subject: [PATCH 07/21] On second thought, don't print anything. This can be a common, expected occurrence when using special implementations of Directory, so it creates a lot of distracting noise for the user. --- src/git-repository-provider.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/src/git-repository-provider.coffee b/src/git-repository-provider.coffee index 66f53b5f5..c9e96f908 100644 --- a/src/git-repository-provider.coffee +++ b/src/git-repository-provider.coffee @@ -55,7 +55,6 @@ class GitRepositoryProvider try @repositoryForDirectorySyncInternal(directory) catch e - console.warn "Error checking for Git repository for '#{directory.getPath()}'", e.stack null repositoryForDirectorySyncInternal: (directory) -> From 07039ba47a9834f2cdd6083fee9ab3f713505f9b Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Mon, 23 Feb 2015 09:30:43 -0800 Subject: [PATCH 08/21] Check whether existsSync() is available in GitRepositoryProvider before trying to call it. --- spec/git-repository-provider-spec.coffee | 22 ++++++++++++---------- src/git-repository-provider.coffee | 15 ++++----------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/spec/git-repository-provider-spec.coffee b/spec/git-repository-provider-spec.coffee index c61327321..5294678ef 100644 --- a/spec/git-repository-provider-spec.coffee +++ b/spec/git-repository-provider-spec.coffee @@ -55,14 +55,15 @@ describe "GitRepositoryProvider", -> provider.repositoryForDirectory(directory).then (result) -> expect(result).toBe null - describe "when specified a Directory that throws an exception when explored", -> - it "catches the exception and returns null for the sync implementation", -> + describe "when specified a Directory without existsSync()", -> + it "returns null", -> provider = new GitRepositoryProvider atom.project - # Tolerate an implementation of Directory whose sync methods are unsupported. - subdirectory = existsSync: -> - spyOn(subdirectory, "existsSync").andThrow("sync method not supported") - directory = getSubdirectory: -> + # Tolerate an implementation of Directory that does not implement existsSync(). + subdirectory = {} + directory = + getSubdirectory: -> + isRoot: -> true spyOn(directory, "getSubdirectory").andReturn(subdirectory) provider = new GitRepositoryProvider atom.project @@ -70,13 +71,14 @@ describe "GitRepositoryProvider", -> expect(repo).toBe null expect(directory.getSubdirectory).toHaveBeenCalledWith(".git") - it "catches the exception and returns a Promise that resolves to null for the async implementation", -> + it "returns a Promise that resolves to null for the async implementation", -> provider = new GitRepositoryProvider atom.project # Tolerate an implementation of Directory whose sync methods are unsupported. - subdirectory = existsSync: -> - spyOn(subdirectory, "existsSync").andThrow("sync method not supported") - directory = getSubdirectory: -> + subdirectory = {} + directory = + getSubdirectory: -> + isRoot: -> true spyOn(directory, "getSubdirectory").andReturn(subdirectory) waitsForPromise -> diff --git a/src/git-repository-provider.coffee b/src/git-repository-provider.coffee index c9e96f908..fcf4a8df5 100644 --- a/src/git-repository-provider.coffee +++ b/src/git-repository-provider.coffee @@ -11,7 +11,7 @@ findGitDirectorySync = (directory) -> # can return cached values rather than always returning new objects: # getParent(), getFile(), getSubdirectory(). gitDir = directory.getSubdirectory('.git') - if gitDir.existsSync() and isValidGitDirectorySync gitDir + if gitDir.existsSync?() and isValidGitDirectorySync gitDir gitDir else if directory.isRoot() return null @@ -26,9 +26,9 @@ isValidGitDirectorySync = (directory) -> # To decide whether a directory has a valid .git folder, we use # the heuristic adopted by the valid_repository_path() function defined in # node_modules/git-utils/deps/libgit2/src/repository.c. - return directory.getSubdirectory('objects').existsSync() and - directory.getFile('HEAD').existsSync() and - directory.getSubdirectory('refs').existsSync() + return directory.getSubdirectory('objects').existsSync?() and + directory.getFile('HEAD').existsSync?() and + directory.getSubdirectory('refs').existsSync?() # Provider that conforms to the atom.repository-provider@0.1.0 service. module.exports = @@ -51,13 +51,6 @@ class GitRepositoryProvider # * {GitRepository} if the given directory has a Git repository. # * `null` if the given directory does not have a Git repository. repositoryForDirectorySync: (directory) -> - # Ensure that this method does not throw. - try - @repositoryForDirectorySyncInternal(directory) - catch e - null - - repositoryForDirectorySyncInternal: (directory) -> # Only one GitRepository should be created for each .git folder. Therefore, # we must check directory and its parent directories to find the nearest # .git folder. From 91aac583954c44e05ef5de730ac1b3394775d267 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 23 Feb 2015 09:36:01 -0800 Subject: [PATCH 09/21] :arrow_up: language-c@0.41 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 39629d4a1..a4703423d 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "welcome": "0.24.0", "whitespace": "0.29.0", "wrap-guide": "0.31.0", - "language-c": "0.40.0", + "language-c": "0.41.0", "language-clojure": "0.12.0", "language-coffee-script": "0.39.0", "language-csharp": "0.5.0", From 261f624d692987fbbe28633539027c6ca98ce8a9 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 23 Feb 2015 09:41:06 -0800 Subject: [PATCH 10/21] :arrow_up: symbols-view@0.84 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a4703423d..e07896b45 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "spell-check": "0.55.0", "status-bar": "0.60.0", "styleguide": "0.44.0", - "symbols-view": "0.83.0", + "symbols-view": "0.84.0", "tabs": "0.67.0", "timecop": "0.30.0", "tree-view": "0.160.0", From 59a14667695ec130930d13e8f226a808a1bf939d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 23 Feb 2015 09:44:20 -0800 Subject: [PATCH 11/21] :arrow_up: language-clojure@0.13 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e07896b45..6a67b0a17 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,7 @@ "whitespace": "0.29.0", "wrap-guide": "0.31.0", "language-c": "0.41.0", - "language-clojure": "0.12.0", + "language-clojure": "0.13.0", "language-coffee-script": "0.39.0", "language-csharp": "0.5.0", "language-css": "0.28.0", From 401b647b2e3c69344cf06afcee0f29498034b058 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 23 Feb 2015 09:47:28 -0800 Subject: [PATCH 12/21] :arrow_up: language-javascript@0.58 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6a67b0a17..1239363a8 100644 --- a/package.json +++ b/package.json @@ -132,7 +132,7 @@ "language-html": "0.29.0", "language-hyperlink": "0.12.2", "language-java": "0.14.0", - "language-javascript": "0.57.0", + "language-javascript": "0.58.0", "language-json": "0.12.0", "language-less": "0.24.0", "language-make": "0.13.0", From b015e1bfa7f20405d85e3f4afb359cc949b7d84e Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Mon, 23 Feb 2015 09:56:57 -0800 Subject: [PATCH 13/21] revert changes to isValidGitDirectorySync() --- src/git-repository-provider.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/git-repository-provider.coffee b/src/git-repository-provider.coffee index fcf4a8df5..850d30f22 100644 --- a/src/git-repository-provider.coffee +++ b/src/git-repository-provider.coffee @@ -26,9 +26,9 @@ isValidGitDirectorySync = (directory) -> # To decide whether a directory has a valid .git folder, we use # the heuristic adopted by the valid_repository_path() function defined in # node_modules/git-utils/deps/libgit2/src/repository.c. - return directory.getSubdirectory('objects').existsSync?() and - directory.getFile('HEAD').existsSync?() and - directory.getSubdirectory('refs').existsSync?() + return directory.getSubdirectory('objects').existsSync() and + directory.getFile('HEAD').existsSync() and + directory.getSubdirectory('refs').existsSync() # Provider that conforms to the atom.repository-provider@0.1.0 service. module.exports = From 6bd6a8ccddde8fbe000edb0a2db36ce3d4bec9e6 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Mon, 23 Feb 2015 09:59:16 -0800 Subject: [PATCH 14/21] Introduce use of beforeEach() in unit test. --- spec/git-repository-provider-spec.coffee | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/spec/git-repository-provider-spec.coffee b/spec/git-repository-provider-spec.coffee index 5294678ef..817e6b887 100644 --- a/spec/git-repository-provider-spec.coffee +++ b/spec/git-repository-provider-spec.coffee @@ -56,7 +56,9 @@ describe "GitRepositoryProvider", -> expect(result).toBe null describe "when specified a Directory without existsSync()", -> - it "returns null", -> + directory = null + provider = null + beforeEach -> provider = new GitRepositoryProvider atom.project # Tolerate an implementation of Directory that does not implement existsSync(). @@ -66,23 +68,13 @@ describe "GitRepositoryProvider", -> isRoot: -> true spyOn(directory, "getSubdirectory").andReturn(subdirectory) - provider = new GitRepositoryProvider atom.project + it "returns null", -> repo = provider.repositoryForDirectorySync(directory) expect(repo).toBe null expect(directory.getSubdirectory).toHaveBeenCalledWith(".git") it "returns a Promise that resolves to null for the async implementation", -> - provider = new GitRepositoryProvider atom.project - - # Tolerate an implementation of Directory whose sync methods are unsupported. - subdirectory = {} - directory = - getSubdirectory: -> - isRoot: -> true - spyOn(directory, "getSubdirectory").andReturn(subdirectory) - waitsForPromise -> - provider = new GitRepositoryProvider atom.project provider.repositoryForDirectory(directory).then (repo) -> expect(repo).toBe null expect(directory.getSubdirectory).toHaveBeenCalledWith(".git") From 61fb408777fc260fdb2311770ca424426bfe1256 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Mon, 23 Feb 2015 10:10:37 -0800 Subject: [PATCH 15/21] Tighten up comment. --- spec/git-repository-provider-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/git-repository-provider-spec.coffee b/spec/git-repository-provider-spec.coffee index 817e6b887..59e3f55af 100644 --- a/spec/git-repository-provider-spec.coffee +++ b/spec/git-repository-provider-spec.coffee @@ -61,7 +61,7 @@ describe "GitRepositoryProvider", -> beforeEach -> provider = new GitRepositoryProvider atom.project - # Tolerate an implementation of Directory that does not implement existsSync(). + # An implementation of Directory that does not implement existsSync(). subdirectory = {} directory = getSubdirectory: -> From e55e84506b641da71e3972053aa2b038181b32e2 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 23 Feb 2015 10:26:27 -0800 Subject: [PATCH 16/21] :arrow_up: tree-view --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1239363a8..ecbac9756 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ "symbols-view": "0.84.0", "tabs": "0.67.0", "timecop": "0.30.0", - "tree-view": "0.160.0", + "tree-view": "0.161.0", "update-package-dependencies": "0.8.0", "welcome": "0.24.0", "whitespace": "0.29.0", From 2e8c5855d406cf939191964a803580cf39b75fd0 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Mon, 23 Feb 2015 10:47:21 -0800 Subject: [PATCH 17/21] =?UTF-8?q?Don=E2=80=99t=20attempt=20to=20preserve?= =?UTF-8?q?=20mouseWheelScreenRow=20if=20it=E2=80=99s=20deleted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #5527 --- spec/text-editor-presenter-spec.coffee | 5 +++++ src/text-editor-presenter.coffee | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spec/text-editor-presenter-spec.coffee b/spec/text-editor-presenter-spec.coffee index 7691b663f..163521c32 100644 --- a/spec/text-editor-presenter-spec.coffee +++ b/spec/text-editor-presenter-spec.coffee @@ -839,6 +839,11 @@ describe "TextEditorPresenter", -> expect(presenter.state.content.lines[oldLine3.id]).toBeUndefined() expect(presenter.state.content.lines[newLine3.id]).toBeDefined() + it "does not attempt to preserve lines corresponding to ::mouseWheelScreenRow if they have been deleted", -> + presenter = buildPresenter(explicitHeight: 25, scrollTop: 0, lineHeight: 10, lineOverdrawMargin: 1, stoppedScrollingDelay: 200) + presenter.setMouseWheelScreenRow(10) + editor.setText('') + describe "[lineId]", -> # line state objects it "includes the .endOfLineInvisibles if the editor.showInvisibles config option is true", -> editor.setText("hello\nworld\r\n") diff --git a/src/text-editor-presenter.coffee b/src/text-editor-presenter.coffee index 215398c05..b76666209 100644 --- a/src/text-editor-presenter.coffee +++ b/src/text-editor-presenter.coffee @@ -228,8 +228,8 @@ class TextEditorPresenter row++ if @mouseWheelScreenRow? - preservedLine = @model.tokenizedLineForScreenRow(@mouseWheelScreenRow) - visibleLineIds[preservedLine.id] = true + if preservedLine = @model.tokenizedLineForScreenRow(@mouseWheelScreenRow) + visibleLineIds[preservedLine.id] = true for id, line of @state.content.lines unless visibleLineIds.hasOwnProperty(id) From 03fc4e1b9806247d0a09beb12600a6b989c4832f Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Mon, 23 Feb 2015 13:08:50 -0800 Subject: [PATCH 18/21] Remove unused React references --- src/text-editor-view.coffee | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/text-editor-view.coffee b/src/text-editor-view.coffee index 5db4e41ce..e75b6609b 100644 --- a/src/text-editor-view.coffee +++ b/src/text-editor-view.coffee @@ -1,5 +1,4 @@ {View, $} = require 'space-pen' -React = require 'react-atom-fork' {defaults} = require 'underscore-plus' TextBuffer = require 'text-buffer' TextEditor = require './text-editor' @@ -186,9 +185,6 @@ class TextEditorView extends View view.css('z-index', 1) @overlayer.append(view) - unmountComponent: -> - React.unmountComponentAtNode(@element) if @component.isMounted() - splitLeft: -> deprecate """ Use Pane::splitLeft instead. From 19fad9c6acf64fb0a2f16acc2e3ab92679ded4d8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 23 Feb 2015 13:22:12 -0800 Subject: [PATCH 19/21] :arrow_up: apm@0.141 --- apm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm/package.json b/apm/package.json index e491d584e..f735cb6f4 100644 --- a/apm/package.json +++ b/apm/package.json @@ -6,6 +6,6 @@ "url": "https://github.com/atom/atom.git" }, "dependencies": { - "atom-package-manager": "0.140.0" + "atom-package-manager": "0.141.0" } } From 91ba91b18f61e8a2334a146bedae521c21ecccae Mon Sep 17 00:00:00 2001 From: Brian Shirai Date: Mon, 23 Feb 2015 19:31:48 -0600 Subject: [PATCH 20/21] Update upgrading-your-ui-theme.md Fixed misspelling of container in selector table. --- docs/upgrading/upgrading-your-ui-theme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/upgrading/upgrading-your-ui-theme.md b/docs/upgrading/upgrading-your-ui-theme.md index 822b0759a..5be0344bb 100644 --- a/docs/upgrading/upgrading-your-ui-theme.md +++ b/docs/upgrading/upgrading-your-ui-theme.md @@ -19,7 +19,7 @@ Old Selector | New Selector `.workspace` | `atom-workspace` `.horizontal` | `atom-workspace-axis.horizontal` `.vertical` | `atom-workspace-axis.vertical` -`.pane-container` | `atom-pane-conatiner` +`.pane-container` | `atom-pane-container` `.pane` | `atom-pane` `.tool-panel` | `atom-panel` `.panel-top` | `atom-panel.top` From e3d4d07baf43d71bd9e249c35c6e7c45ecc2adb8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 23 Feb 2015 17:49:38 -0800 Subject: [PATCH 21/21] :memo: Link to latest docs --- src/scope-descriptor.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scope-descriptor.coffee b/src/scope-descriptor.coffee index 73e269de3..5035810d6 100644 --- a/src/scope-descriptor.coffee +++ b/src/scope-descriptor.coffee @@ -15,7 +15,7 @@ # specific position in the buffer. # * {Cursor::getScopeDescriptor} to get a cursor's descriptor based on position. # -# See the [scopes and scope descriptor guide](https://atom.io/docs/v0.138.0/advanced/scopes-and-scope-descriptors) +# See the [scopes and scope descriptor guide](https://atom.io/docs/latest/advanced/scopes-and-scope-descriptors) # for more information. module.exports = class ScopeDescriptor