From 1c410cbf5a65c45c10fb9fcc912adc6487aef5b5 Mon Sep 17 00:00:00 2001 From: Ben Ogle & Nathan Sobo Date: Wed, 11 Jun 2014 16:40:46 -0600 Subject: [PATCH 01/73] Handle textInput events in EditorComponent instead of on InputComponent This commit also changes input handling to be more like it was in the previous editor. We're using textInput rather than input events because they are emitted *before* characters are inserted, enabling much simpler detection of characters inserted via the accented-character menu on OS X. Previously I avoided this because something about it was causing reflows in the old editor, but in this editor that doesn't seem to be a problem, and it's actually faster. --- spec/editor-component-spec.coffee | 23 ++++++++++++---------- src/editor-component.coffee | 32 ++++++++++++++++++------------- src/input-component.coffee | 11 ----------- 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/spec/editor-component-spec.coffee b/spec/editor-component-spec.coffee index 631434ac5..bd8b780e0 100644 --- a/spec/editor-component-spec.coffee +++ b/spec/editor-component-spec.coffee @@ -1174,28 +1174,31 @@ describe "EditorComponent", -> beforeEach -> inputNode = node.querySelector('.hidden-input') + buildTextInputEvent = ({data, target}) -> + event = new Event('textInput') + event.data = data + Object.defineProperty(event, 'target', get: -> target) + event + it "inserts the newest character in the input's value into the buffer", -> - inputNode.value = 'x' - inputNode.dispatchEvent(new Event('input')) + node.dispatchEvent(buildTextInputEvent(data: 'x', target: inputNode)) expect(editor.lineForBufferRow(0)).toBe 'xvar quicksort = function () {' - inputNode.value = 'xy' - inputNode.dispatchEvent(new Event('input')) + node.dispatchEvent(buildTextInputEvent(data: 'y', target: inputNode)) expect(editor.lineForBufferRow(0)).toBe 'xyvar quicksort = function () {' it "replaces the last character if the length of the input's value doesn't increase, as occurs with the accented character menu", -> - inputNode.value = 'u' - inputNode.dispatchEvent(new Event('input')) + node.dispatchEvent(buildTextInputEvent(data: 'u', target: inputNode)) expect(editor.lineForBufferRow(0)).toBe 'uvar quicksort = function () {' - inputNode.value = 'ü' - inputNode.dispatchEvent(new Event('input')) + # simulate the accented character suggestion's selection of the previous character + inputNode.setSelectionRange(0, 1) + node.dispatchEvent(buildTextInputEvent(data: 'ü', target: inputNode)) expect(editor.lineForBufferRow(0)).toBe 'üvar quicksort = function () {' it "does not handle input events when input is disabled", -> component.setInputEnabled(false) - inputNode.value = 'x' - inputNode.dispatchEvent(new Event('input')) + node.dispatchEvent(buildTextInputEvent(data: 'x', target: inputNode)) expect(editor.lineForBufferRow(0)).toBe 'var quicksort = function () {' describe "commands", -> diff --git a/src/editor-component.coffee b/src/editor-component.coffee index fc3621a6f..32c068fd2 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -82,7 +82,6 @@ EditorComponent = React.createClass ref: 'input' className: 'hidden-input' style: hiddenInputStyle - onInput: @onInput onFocus: @onInputFocused onBlur: @onInputBlurred @@ -262,6 +261,7 @@ EditorComponent = React.createClass node = @getDOMNode() node.addEventListener 'mousewheel', @onMouseWheel node.addEventListener 'focus', @onFocus # For some reason, React's built in focus events seem to bubble + node.addEventListener 'textInput', @onTextInput scrollViewNode = @refs.scrollView.getDOMNode() scrollViewNode.addEventListener 'overflowchanged', @onScrollViewOverflowChanged @@ -387,6 +387,24 @@ EditorComponent = React.createClass onFocus: -> @refs.input.focus() + onTextInput: (event) -> + return unless @isInputEnabled() + + {editor} = @props + inputNode = event.target + + # Work around of the accented character suggestion feature in OS X. + # Text input fires before a character is inserted, and if the browser is + # replacing the previous un-accented character with an accented variant, it + # will select backward over it. + selectedLength = inputNode.selectionEnd - inputNode.selectionStart + editor.selectLeft() if selectedLength is 1 + + editor.insertText(event.data) + inputNode.value = event.data + + event.preventDefault() + onInputFocused: -> @setState(focused: true) @@ -453,18 +471,6 @@ EditorComponent = React.createClass scrollViewNode.scrollTop = 0 scrollViewNode.scrollLeft = 0 - onInput: (char, replaceLastCharacter) -> - return unless @inputEnabled - - {editor} = @props - - if replaceLastCharacter - editor.transact -> - editor.selectLeft() - editor.insertText(char) - else - editor.insertText(char) - onMouseDown: (event) -> {editor} = @props {detail, shiftKey, metaKey} = event diff --git a/src/input-component.coffee b/src/input-component.coffee index 372bccf9c..230c4be37 100644 --- a/src/input-component.coffee +++ b/src/input-component.coffee @@ -1,4 +1,3 @@ -punycode = require 'punycode' {last, isEqual} = require 'underscore-plus' React = require 'react-atom-fork' {input} = require 'reactionary-atom-fork' @@ -17,7 +16,6 @@ InputComponent = React.createClass componentDidMount: -> @getDOMNode().addEventListener 'paste', @onPaste - @getDOMNode().addEventListener 'input', @onInput @getDOMNode().addEventListener 'compositionupdate', @onCompositionUpdate # Don't let text accumulate in the input forever, but avoid excessive reflows @@ -36,15 +34,6 @@ InputComponent = React.createClass onPaste: (e) -> e.preventDefault() - onInput: (e) -> - e.stopPropagation() - valueCharCodes = punycode.ucs2.decode(@getDOMNode().value) - valueLength = valueCharCodes.length - replaceLastChar = valueLength is @lastValueLength - @lastValueLength = valueLength - lastChar = String.fromCharCode(last(valueCharCodes)) - @props.onInput?(lastChar, replaceLastChar) - onFocus: -> @props.onFocus?() From 4569b76dd53679f6f6bfdfdd5f16100c535e79ae Mon Sep 17 00:00:00 2001 From: Ben Ogle & Nathan Sobo Date: Wed, 11 Jun 2014 17:16:19 -0600 Subject: [PATCH 02/73] Don't call preventDefault for spaces to prevent browser scrolling --- src/editor-component.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/editor-component.coffee b/src/editor-component.coffee index 32c068fd2..46b4b2177 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -403,7 +403,9 @@ EditorComponent = React.createClass editor.insertText(event.data) inputNode.value = event.data - event.preventDefault() + # If we prevent the insertion of a space character, then the browser + # interprets the spacebar keypress as a page-down command. + event.preventDefault() unless event.data is ' ' onInputFocused: -> @setState(focused: true) From f623a4f2b5190ba1673c99399a836830407f4e90 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 12 Jun 2014 14:54:25 -0700 Subject: [PATCH 03/73] Upgrade to markdown-preview@0.77 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e823ee917..f9f0c7d9e 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "image-view": "0.35.0", "keybinding-resolver": "0.18.0", "link": "0.22.0", - "markdown-preview": "0.76.0", + "markdown-preview": "0.77.0", "metrics": "0.32.0", "open-on-github": "0.28.0", "package-generator": "0.30.0", From e26ab5513f889e92466ff39d5b54ec0279691c50 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 12 Jun 2014 13:40:04 -0600 Subject: [PATCH 04/73] Don't assign scrollLeft on model on 'scroll-left-changed' events Fixes #2513 I'm not entirely sure why, but for some reason we're getting into an feedback cycle when the scrollLeft position changes in certain cases. In theory, this shouldn't happen because reassigning the same value shouldn't emit a change event. But since we're about to end-of-life the jQuery editor, I'd like to try fixing it this way for now. --- src/editor-view.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/editor-view.coffee b/src/editor-view.coffee index 53b05ab56..731e87448 100644 --- a/src/editor-view.coffee +++ b/src/editor-view.coffee @@ -567,7 +567,7 @@ class EditorView extends View @scrollTop(scrollTop) @subscribe @editor, 'scroll-left-changed', (scrollLeft) => - @scrollLeft(scrollLeft) + @scrollView.scrollLeft(scrollLeft) @subscribe @editor, 'soft-wrap-changed', (softWrap) => @setSoftWrap(softWrap) From fb0a15b1b3cb0f3241952b97abbe02a340bde204 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 12 Jun 2014 16:50:19 -0700 Subject: [PATCH 05/73] Upgrade to markdown-preview@0.78 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f9f0c7d9e..15018ec15 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "image-view": "0.35.0", "keybinding-resolver": "0.18.0", "link": "0.22.0", - "markdown-preview": "0.77.0", + "markdown-preview": "0.78.0", "metrics": "0.32.0", "open-on-github": "0.28.0", "package-generator": "0.30.0", From 34be92b5b0ee6be52145d83dacf96b90a682cb3f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 10:06:45 -0700 Subject: [PATCH 06/73] Log message for all commands The first time you bootstrap, all the build modules and apm are installed. Previously this was showing no output so it was unclear whether things are hung or now. This will also help easily identify which stage of the build npm and node-gyp errors are occurring. --- script/bootstrap | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/script/bootstrap b/script/bootstrap index 89890bc18..250041b53 100755 --- a/script/bootstrap +++ b/script/bootstrap @@ -10,6 +10,8 @@ function executeCommands(commands, done, index) { index = (index == undefined ? 0 : index); if (index < commands.length) { var command = commands[index]; + if (command.message) + console.log(command.message); var options = null; if (typeof command !== 'string') { options = command.options; @@ -36,12 +38,10 @@ function bootstrap() { var npmFlags = ' --userconfig=' + path.resolve('.npmrc') + ' '; var packagesToDedupe = ['fs-plus', 'humanize-plus', 'oniguruma', 'roaster', 'season', 'grim']; - var echoNewLine = process.platform == 'win32' ? 'echo.' : 'echo'; var commands = [ - {command: initialNpmCommand + npmFlags + 'install --quiet', options: {cwd: path.resolve(__dirname, '..', 'build'), ignoreStdout: true}}, - {command: npmPath + npmFlags + 'install --quiet', options: {cwd: apmInstallPath, ignoreStdout: true}}, - echoNewLine, + {command: initialNpmCommand + npmFlags + 'install --quiet', message: 'Installing build modules...', options: {cwd: path.resolve(__dirname, '..', 'build'), ignoreStdout: true}}, + {command: npmPath + npmFlags + 'install --quiet', message: 'Installing apm...', options: {cwd: apmInstallPath, ignoreStdout: true}}, apmPath + ' clean ' + apmFlags, apmPath + ' install --quiet ' + apmFlags, apmPath + ' dedupe --quiet ' + apmFlags + ' ' + packagesToDedupe.join(' '), From e046bb52d78b40aa14bebaa0a35d61b937bf16bf Mon Sep 17 00:00:00 2001 From: joliv Date: Fri, 13 Jun 2014 17:49:10 +0000 Subject: [PATCH 07/73] :memo: Add git req to linux build instructions Pretty simple, but doesn't come on a clean install. --- docs/build-instructions/linux.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/build-instructions/linux.md b/docs/build-instructions/linux.md index 68f0374de..5f63c24e4 100644 --- a/docs/build-instructions/linux.md +++ b/docs/build-instructions/linux.md @@ -20,6 +20,9 @@ Ubuntu LTS 12.04 64-bit is the recommended platform. * `npm config set python /usr/bin/python2 -g` to ensure that gyp uses Python 2 * This command may require `sudo` depending on how you have [configured npm](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#ubuntu-mint-elementary-os). + * Git + * on Ubuntu/Debian: `sudo apt-get install git` + * on Fedora: `sudo yum install git-core` ## Instructions From 7f1d88a05de183b6217a7c904c1a0d4438161852 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 12 Jun 2014 16:57:04 -0700 Subject: [PATCH 08/73] Always pass windows build until flaky specs pass --- build/tasks/spec-task.coffee | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/tasks/spec-task.coffee b/build/tasks/spec-task.coffee index 9a2dbc585..6ade6124e 100644 --- a/build/tasks/spec-task.coffee +++ b/build/tasks/spec-task.coffee @@ -105,4 +105,7 @@ module.exports = (grunt) -> failures.push "atom core" if coreSpecFailed grunt.log.error("[Error]".red + " #{failures.join(', ')} spec(s) failed") if failures.length > 0 - done(!coreSpecFailed and failedPackages.length == 0) + if process.platform is 'win32' + done() # TODO remove once all specs consistently pass + else + done(!coreSpecFailed and failedPackages.length == 0) From 019cccc9780429b9f817ce2bfdf9b827991910f5 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 10:58:35 -0700 Subject: [PATCH 09/73] Remove unused variable --- build/tasks/publish-build-task.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index 0707a2c66..923c21a4f 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -8,7 +8,6 @@ GitHub = require 'github-releases' request = require 'request' grunt = null -maxReleases = 10 assets = [ {assetName: 'atom-mac.zip', sourceName: 'Atom.app'} {assetName: 'atom-mac-symbols.zip', sourceName: 'Atom.breakpad.syms'} From 0104d7e264d9fbf472eeaa894626e47b92b2a40e Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 11:24:06 -0700 Subject: [PATCH 10/73] Zip built app on Windows --- build/tasks/publish-build-task.coffee | 48 +++++++++++++++++---------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index 923c21a4f..5e86bf831 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -8,10 +8,17 @@ GitHub = require 'github-releases' request = require 'request' grunt = null -assets = [ - {assetName: 'atom-mac.zip', sourceName: 'Atom.app'} - {assetName: 'atom-mac-symbols.zip', sourceName: 'Atom.breakpad.syms'} -] + +if process.platform is 'darwin' + assets = [ + {assetName: 'atom-mac.zip', sourceName: 'Atom.app'} + {assetName: 'atom-mac-symbols.zip', sourceName: 'Atom.breakpad.syms'} + ] +else + assets = [ + {assetName: 'atom-windows.zip', sourceName: 'Atom'} + ] + commitSha = process.env.JANKY_SHA1 token = process.env.ATOM_ACCESS_TOKEN defaultHeaders = @@ -22,20 +29,20 @@ module.exports = (gruntObject) -> grunt = gruntObject grunt.registerTask 'publish-build', 'Publish the built app', -> - return unless process.platform is 'darwin' - return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master' + return unless process.platform is 'win32' + # return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master' done = @async() buildDir = grunt.config.get('atom.buildDir') zipApps buildDir, assets, (error) -> return done(error) if error? - getAtomDraftRelease (error, release) -> - return done(error) if error? - assetNames = (asset.assetName for asset in assets) - deleteExistingAssets release, assetNames, (error) -> - return done(error) if error? - uploadAssets(release, buildDir, assets, done) + # getAtomDraftRelease (error, release) -> + # return done(error) if error? + # assetNames = (asset.assetName for asset in assets) + # deleteExistingAssets release, assetNames, (error) -> + # return done(error) if error? + # uploadAssets(release, buildDir, assets, done) logError = (message, error, details) -> grunt.log.error(message) @@ -44,11 +51,18 @@ logError = (message, error, details) -> zipApps = (buildDir, assets, callback) -> zip = (directory, sourceName, assetName, callback) -> - options = {cwd: directory, maxBuffer: Infinity} - child_process.exec "zip -r --symlinks #{assetName} #{sourceName}", options, (error, stdout, stderr) -> - if error? - logError("Zipping #{sourceName} failed", error, stderr) - callback(error) + if process.platform is 'win32' + options = {cwd: directory, maxBuffer: Infinity} + child_process.exec "7z -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> + if error? + logError("Zipping #{sourceName} failed", error, stderr) + callback(error) + else + options = {cwd: directory, maxBuffer: Infinity} + child_process.exec "zip -r --symlinks #{assetName} #{sourceName}", options, (error, stdout, stderr) -> + if error? + logError("Zipping #{sourceName} failed", error, stderr) + callback(error) tasks = [] for {assetName, sourceName} in assets From cd376c2d1dde3b070fa39548aa399eced8aecd6d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 11:45:53 -0700 Subject: [PATCH 11/73] Try 7za --- build/tasks/publish-build-task.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index 5e86bf831..0d713ee13 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -53,7 +53,7 @@ zipApps = (buildDir, assets, callback) -> zip = (directory, sourceName, assetName, callback) -> if process.platform is 'win32' options = {cwd: directory, maxBuffer: Infinity} - child_process.exec "7z -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> + child_process.exec "7za -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> if error? logError("Zipping #{sourceName} failed", error, stderr) callback(error) From d5ec8551e1946562a4900817fed733967c917cba Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 11:53:30 -0700 Subject: [PATCH 12/73] Speed up built temporarily by not running specs --- build/tasks/spec-task.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/tasks/spec-task.coffee b/build/tasks/spec-task.coffee index 6ade6124e..6c8fd905a 100644 --- a/build/tasks/spec-task.coffee +++ b/build/tasks/spec-task.coffee @@ -87,6 +87,8 @@ module.exports = (grunt) -> callback(null, error) grunt.registerTask 'run-specs', 'Run the specs', -> + return if process.platform is 'win32' + done = @async() startTime = Date.now() From 0b79c31d4582f1e48ca8ec182b17ba1e11616ead Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 12:02:04 -0700 Subject: [PATCH 13/73] Use full path --- build/tasks/publish-build-task.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index 0d713ee13..e0bc7d48f 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -53,7 +53,7 @@ zipApps = (buildDir, assets, callback) -> zip = (directory, sourceName, assetName, callback) -> if process.platform is 'win32' options = {cwd: directory, maxBuffer: Infinity} - child_process.exec "7za -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> + child_process.exec "C:/psmodules/7z.exe -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> if error? logError("Zipping #{sourceName} failed", error, stderr) callback(error) From ebcae85f1abf7a7d33134b00e4cae2928ed9696d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 12:23:49 -0700 Subject: [PATCH 14/73] Log directory --- build/tasks/publish-build-task.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index e0bc7d48f..c8587ae52 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -52,6 +52,7 @@ logError = (message, error, details) -> zipApps = (buildDir, assets, callback) -> zip = (directory, sourceName, assetName, callback) -> if process.platform is 'win32' + console.log directory options = {cwd: directory, maxBuffer: Infinity} child_process.exec "C:/psmodules/7z.exe -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> if error? From f3ea2cd9e0ef745f61dd8f96a35a3f4a9474b086 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 12:33:54 -0700 Subject: [PATCH 15/73] Add a command --- build/tasks/publish-build-task.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index c8587ae52..0568b5892 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -54,7 +54,7 @@ zipApps = (buildDir, assets, callback) -> if process.platform is 'win32' console.log directory options = {cwd: directory, maxBuffer: Infinity} - child_process.exec "C:/psmodules/7z.exe -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> + child_process.exec "C:/psmodules/7z.exe a -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> if error? logError("Zipping #{sourceName} failed", error, stderr) callback(error) From 655cce9fd4647b9a971bde0319e4320097f82d95 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 14:14:58 -0700 Subject: [PATCH 16/73] Renable asset uploading --- build/tasks/publish-build-task.coffee | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index 0568b5892..e73c2b8d7 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -37,12 +37,12 @@ module.exports = (gruntObject) -> zipApps buildDir, assets, (error) -> return done(error) if error? - # getAtomDraftRelease (error, release) -> - # return done(error) if error? - # assetNames = (asset.assetName for asset in assets) - # deleteExistingAssets release, assetNames, (error) -> - # return done(error) if error? - # uploadAssets(release, buildDir, assets, done) + getAtomDraftRelease (error, release) -> + return done(error) if error? + assetNames = (asset.assetName for asset in assets) + deleteExistingAssets release, assetNames, (error) -> + return done(error) if error? + uploadAssets(release, buildDir, assets, done) logError = (message, error, details) -> grunt.log.error(message) @@ -52,7 +52,6 @@ logError = (message, error, details) -> zipApps = (buildDir, assets, callback) -> zip = (directory, sourceName, assetName, callback) -> if process.platform is 'win32' - console.log directory options = {cwd: directory, maxBuffer: Infinity} child_process.exec "C:/psmodules/7z.exe a -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> if error? From 01fdf016a9325582dbd6d0afdcb814dd4fee99fa Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 14:33:16 -0700 Subject: [PATCH 17/73] :memo: Document invalid .vcxproj file error Refs #2430 --- docs/build-instructions/windows.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/build-instructions/windows.md b/docs/build-instructions/windows.md index f60cbea7a..41b9b12dc 100644 --- a/docs/build-instructions/windows.md +++ b/docs/build-instructions/windows.md @@ -51,5 +51,13 @@ fix this, you probably need to fiddle with your system PATH. * Try moving the repository to `C:\atom`. Most likely, the path is too long. See [issue #2200](https://github.com/atom/atom/issues/2200). +* `error MSB4025: The project file could not be loaded. Invalid character in the given encoding.` + + * These can occur because your home directory (`%USERPROFILE%`) has non-ASCII + characters in it. This is a bug in [gyp](https://code.google.com/p/gyp/) + which is used to build native node modules and there is no known workaround. + * https://github.com/TooTallNate/node-gyp/issues/297 + * https://code.google.com/p/gyp/issues/detail?id=393 + ### Windows build error reports in atom/atom * Use [this search](https://github.com/atom/atom/search?q=label%3Abuild-error+label%3Awindows&type=Issues) to get a list of reports about build errors on Windows. From b78ff8c3a9530d6cde76ea6d0642057f2f545b8b Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:05:36 -0700 Subject: [PATCH 18/73] Load atomcredentials on Windows --- script/cibuild | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/script/cibuild b/script/cibuild index c5347df45..0301326d6 100755 --- a/script/cibuild +++ b/script/cibuild @@ -19,12 +19,18 @@ function loadEnvironmentVariables(filePath) { var value = parts[1].trim().substr(1, parts[1].length - 2); process.env[key] = value; } - } catch(error) { } + } catch(error) { + console.error("Failed to load environment variables: " + filePath, error); + } } function readEnvironmentVariables() { - loadEnvironmentVariables('/var/lib/jenkins/config/atomcredentials') - loadEnvironmentVariables('/var/lib/jenkins/config/xcodekeychain') + if (process.platform === 'win32') + loadEnvironmentVariables('C:\\jenkins\\atomcredentials'); + else { + loadEnvironmentVariables('/var/lib/jenkins/config/atomcredentials'); + loadEnvironmentVariables('/var/lib/jenkins/config/xcodekeychain'); + } } readEnvironmentVariables(); From 87fcc3904563ece6fdccb69f2427d664a18850f8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:11:16 -0700 Subject: [PATCH 19/73] Add missing path segment --- script/cibuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/cibuild b/script/cibuild index 0301326d6..21a86ad0c 100755 --- a/script/cibuild +++ b/script/cibuild @@ -26,7 +26,7 @@ function loadEnvironmentVariables(filePath) { function readEnvironmentVariables() { if (process.platform === 'win32') - loadEnvironmentVariables('C:\\jenkins\\atomcredentials'); + loadEnvironmentVariables('C:\\jenkins\\config\\atomcredentials'); else { loadEnvironmentVariables('/var/lib/jenkins/config/atomcredentials'); loadEnvironmentVariables('/var/lib/jenkins/config/xcodekeychain'); From ca86e0258f7cd187d95b17ce38ba54667d6abd0a Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:12:06 -0700 Subject: [PATCH 20/73] Only log error code --- script/cibuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/cibuild b/script/cibuild index 21a86ad0c..0682446cb 100755 --- a/script/cibuild +++ b/script/cibuild @@ -20,7 +20,7 @@ function loadEnvironmentVariables(filePath) { process.env[key] = value; } } catch(error) { - console.error("Failed to load environment variables: " + filePath, error); + console.error("Failed to load environment variables: " + filePath, error.code); } } From 28015339d92b45feebf8bd9474c307d52458d7b8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:19:20 -0700 Subject: [PATCH 21/73] Add some logging --- script/cibuild | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/script/cibuild b/script/cibuild index 0682446cb..0e54798fb 100755 --- a/script/cibuild +++ b/script/cibuild @@ -25,9 +25,11 @@ function loadEnvironmentVariables(filePath) { } function readEnvironmentVariables() { - if (process.platform === 'win32') - loadEnvironmentVariables('C:\\jenkins\\config\\atomcredentials'); - else { + if (process.platform === 'win32') { + console.log(process.env.SystemDrive); + console.log(path.resolve('/jenkins/config/atomcredentials')); + loadEnvironmentVariables('Y:\\jenkins\\config\\atomcredentials'); + } else { loadEnvironmentVariables('/var/lib/jenkins/config/atomcredentials'); loadEnvironmentVariables('/var/lib/jenkins/config/xcodekeychain'); } From 858e7b62a35a53a0db5ebc66172df13d1e33de8f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:25:13 -0700 Subject: [PATCH 22/73] Remove logging --- script/cibuild | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/script/cibuild b/script/cibuild index 0e54798fb..c8ac0b7ec 100755 --- a/script/cibuild +++ b/script/cibuild @@ -26,9 +26,7 @@ function loadEnvironmentVariables(filePath) { function readEnvironmentVariables() { if (process.platform === 'win32') { - console.log(process.env.SystemDrive); - console.log(path.resolve('/jenkins/config/atomcredentials')); - loadEnvironmentVariables('Y:\\jenkins\\config\\atomcredentials'); + loadEnvironmentVariables(path.resolve('/jenkins/config/atomcredentials')); } else { loadEnvironmentVariables('/var/lib/jenkins/config/atomcredentials'); loadEnvironmentVariables('/var/lib/jenkins/config/xcodekeychain'); From dc323348b737cfdd9f3aba79d24a42965193f6cb Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:25:21 -0700 Subject: [PATCH 23/73] Only publish janky master builds --- build/tasks/publish-build-task.coffee | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index e73c2b8d7..b0b030067 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -29,8 +29,7 @@ module.exports = (gruntObject) -> grunt = gruntObject grunt.registerTask 'publish-build', 'Publish the built app', -> - return unless process.platform is 'win32' - # return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master' + return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master' done = @async() buildDir = grunt.config.get('atom.buildDir') From 058d55c829bc5729cc02d987004badac0b6e48f9 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:28:40 -0700 Subject: [PATCH 24/73] Run specs on all platforms --- build/tasks/spec-task.coffee | 2 -- 1 file changed, 2 deletions(-) diff --git a/build/tasks/spec-task.coffee b/build/tasks/spec-task.coffee index 6c8fd905a..6ade6124e 100644 --- a/build/tasks/spec-task.coffee +++ b/build/tasks/spec-task.coffee @@ -87,8 +87,6 @@ module.exports = (grunt) -> callback(null, error) grunt.registerTask 'run-specs', 'Run the specs', -> - return if process.platform is 'win32' - done = @async() startTime = Date.now() From 4bade1c976056e60955dec9bd954735b0c462fdf Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:40:46 -0700 Subject: [PATCH 25/73] :lipstick: --- script/cibuild | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/cibuild b/script/cibuild index c8ac0b7ec..6e76d8831 100755 --- a/script/cibuild +++ b/script/cibuild @@ -25,9 +25,9 @@ function loadEnvironmentVariables(filePath) { } function readEnvironmentVariables() { - if (process.platform === 'win32') { + if (process.platform === 'win32') loadEnvironmentVariables(path.resolve('/jenkins/config/atomcredentials')); - } else { + else { loadEnvironmentVariables('/var/lib/jenkins/config/atomcredentials'); loadEnvironmentVariables('/var/lib/jenkins/config/xcodekeychain'); } From bb9e052c90ba23b36b967426dc9a6d3838ea871c Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:44:34 -0700 Subject: [PATCH 26/73] DRY up zip code --- build/tasks/publish-build-task.coffee | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index b0b030067..77a82e184 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -51,17 +51,14 @@ logError = (message, error, details) -> zipApps = (buildDir, assets, callback) -> zip = (directory, sourceName, assetName, callback) -> if process.platform is 'win32' - options = {cwd: directory, maxBuffer: Infinity} - child_process.exec "C:/psmodules/7z.exe a -r #{assetName} #{sourceName}", options, (error, stdout, stderr) -> - if error? - logError("Zipping #{sourceName} failed", error, stderr) - callback(error) + zipCommand = "C:/psmodules/7z.exe a -r #{assetName} #{sourceName}" else - options = {cwd: directory, maxBuffer: Infinity} - child_process.exec "zip -r --symlinks #{assetName} #{sourceName}", options, (error, stdout, stderr) -> - if error? - logError("Zipping #{sourceName} failed", error, stderr) - callback(error) + zipCommand = "zip -r --symlinks #{assetName} #{sourceName}" + options = {cwd: directory, maxBuffer: Infinity} + child_process.exec zipCommand, options, (error, stdout, stderr) -> + if error? + logError("Zipping #{sourceName} failed", error, stderr) + callback(error) tasks = [] for {assetName, sourceName} in assets From 853ee3eec55d506b094bccddf3fb51b2b21ebde9 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 13 Jun 2014 15:44:43 -0700 Subject: [PATCH 27/73] :lipstick: --- build/tasks/publish-build-task.coffee | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/tasks/publish-build-task.coffee b/build/tasks/publish-build-task.coffee index 77a82e184..5c1c5abc8 100644 --- a/build/tasks/publish-build-task.coffee +++ b/build/tasks/publish-build-task.coffee @@ -56,8 +56,7 @@ zipApps = (buildDir, assets, callback) -> zipCommand = "zip -r --symlinks #{assetName} #{sourceName}" options = {cwd: directory, maxBuffer: Infinity} child_process.exec zipCommand, options, (error, stdout, stderr) -> - if error? - logError("Zipping #{sourceName} failed", error, stderr) + logError("Zipping #{sourceName} failed", error, stderr) if error? callback(error) tasks = [] From f555af0b8831f390fa893ee2690f77197ba80503 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Fri, 13 Jun 2014 15:47:49 -0700 Subject: [PATCH 28/73] Upgrade scandal to fix issues with renaming across devices --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 15018ec15..1e39187b9 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "react-atom-fork": "^0.10.0", "reactionary-atom-fork": "^0.9.0", "runas": "^0.5", - "scandal": "0.15.2", + "scandal": "0.15.3", "scoped-property-store": "^0.9.0", "scrollbar-style": "^0.4.0", "season": "^1.0.2", From 95818ab21fddfed4a87eeacdc6ef6f227f7febb2 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Fri, 13 Jun 2014 15:58:23 -0700 Subject: [PATCH 29/73] Revert "Upgrade scandal to fix issues with renaming across devices" This reverts commit f555af0b8831f390fa893ee2690f77197ba80503. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1e39187b9..15018ec15 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "react-atom-fork": "^0.10.0", "reactionary-atom-fork": "^0.9.0", "runas": "^0.5", - "scandal": "0.15.3", + "scandal": "0.15.2", "scoped-property-store": "^0.9.0", "scrollbar-style": "^0.4.0", "season": "^1.0.2", From dbed45c68e4924396efe31a85fee6143618ee947 Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Fri, 13 Jun 2014 16:21:10 -0700 Subject: [PATCH 30/73] Upgrade temp to 0.7.0 for the tracking feature --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 15018ec15..0918f857a 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "semver": "1.1.4", "serializable": "^1", "space-pen": "3.2.0", - "temp": "0.5.0", + "temp": "0.7.0", "text-buffer": "^2.3.0", "theorist": "^1", "underscore-plus": "^1.4.1", From 573c7f962104dcc493fa39edb9407d9ced19fcff Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Fri, 13 Jun 2014 16:29:47 -0700 Subject: [PATCH 31/73] Upgrade scandal to fix replacing across devices --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0918f857a..e2a61d4da 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "react-atom-fork": "^0.10.0", "reactionary-atom-fork": "^0.9.0", "runas": "^0.5", - "scandal": "0.15.2", + "scandal": "0.15.3", "scoped-property-store": "^0.9.0", "scrollbar-style": "^0.4.0", "season": "^1.0.2", From ae46f1a3e1fc6cccb1a8111d94b0e29f88c60bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bengt=20L=C3=BCers?= Date: Sat, 14 Jun 2014 16:16:22 +0200 Subject: [PATCH 32/73] Add installation step of "C++ Toolchain" on Fedora --- docs/build-instructions/linux.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/build-instructions/linux.md b/docs/build-instructions/linux.md index 5f63c24e4..16f135b11 100644 --- a/docs/build-instructions/linux.md +++ b/docs/build-instructions/linux.md @@ -7,6 +7,7 @@ Ubuntu LTS 12.04 64-bit is the recommended platform. * OS with 64-bit or 32-bit architecture * C++ toolchain * on Ubuntu/Debian: `sudo apt-get install build-essential` + * on Fedora: `sudo yum --assumeyes install make gcc gcc-c++ glibc-devel` * [node.js](http://nodejs.org/download/) v0.10.x * [Ubuntu/Debian/Mint instructions](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#ubuntu-mint-elementary-os) * [Fedora instructions](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#fedora) From 527a18fedc0a375ba22d76b80f6a01558d593610 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Sun, 15 Jun 2014 12:02:13 +0800 Subject: [PATCH 33/73] Upgrade to atom-shell@0.13.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e2a61d4da..3db6e4cd0 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "url": "http://github.com/atom/atom/raw/master/LICENSE.md" } ], - "atomShellVersion": "0.13.0", + "atomShellVersion": "0.13.1", "dependencies": { "async": "0.2.6", "atom-keymap": "^0.27.0", From 1c6e2f06ed91d3fb532700f3d91bd7a0b1c113ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20=C5=BDu=C5=BEak?= Date: Sun, 15 Jun 2014 13:10:04 +0200 Subject: [PATCH 34/73] Mention debugging guide in contributing guide --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c465ab7c1..94c957ba3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,6 +11,9 @@ propose changes to this document in a pull request. ## Submitting Issues +* Check the [debugging guide](https://atom.io/docs/latest/debugging) for tips + on debugging. You might be able to find the cause of the problem and fix + things yourself. * Include the version of Atom you are using and the OS. * Include screenshots and animated GIFs whenever possible; they are immensely helpful. From 286c7e8f18a1742766701b3ee6ed7095e04620ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20=C5=BDu=C5=BEak?= Date: Sun, 15 Jun 2014 13:27:04 +0200 Subject: [PATCH 35/73] Add overview to debugging guide --- docs/debugging.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/debugging.md b/docs/debugging.md index 2b81acd20..0070de61d 100644 --- a/docs/debugging.md +++ b/docs/debugging.md @@ -1,6 +1,13 @@ # Debugging -Atom provides several tools to help you understand unexpected behavior and debug problems. This guide describes some of those tools and a few approaches to help you debug and provide more helpful information when [submitting issues]. +Atom provides several tools to help you understand unexpected behavior and debug problems. This guide describes some of those tools and a few approaches to help you debug and provide more helpful information when [submitting issues]: + +* [Update to the latest version](#update-to-the-latest-version) +* [Check Atom and package settings](#check-atom-and-package-settings) +* [Check the keybindings](#check-the-keybindings) +* [Check if the problem shows up in safe mode](#check-if-the-problem-shows-up-in-safe-mode) +* [Check your config files](#check-your-config-files) +* [Check for errors in the developer tools](#check-for-errors-in-the-developer-tools) ## Update to the latest version From 3180bd2e3ccbd16cc02efd0637849fadb210111f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 08:24:51 -0700 Subject: [PATCH 36/73] Upgrade to markdown-preview@0.79 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3db6e4cd0..d65c0b9e4 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "image-view": "0.35.0", "keybinding-resolver": "0.18.0", "link": "0.22.0", - "markdown-preview": "0.78.0", + "markdown-preview": "0.79.0", "metrics": "0.32.0", "open-on-github": "0.28.0", "package-generator": "0.30.0", From 69b34b73771978e78a2cd3542f0a8fd81ef64025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20=C5=BDu=C5=BEak?= Date: Mon, 16 Jun 2014 17:46:30 +0200 Subject: [PATCH 37/73] Upgrade to language-ruby@0.28.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d65c0b9e4..4b6da2a7d 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "language-php": "0.15.0", "language-property-list": "0.7.0", "language-python": "0.18.0", - "language-ruby": "0.27.0", + "language-ruby": "0.28.0", "language-ruby-on-rails": "0.14.0", "language-sass": "0.13.0", "language-shellscript": "0.8.0", From 520e4784473cf9a4164217c5b978be9bdffe4310 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 09:55:55 -0700 Subject: [PATCH 38/73] Upgrade to tree-view@0.101 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4b6da2a7d..cb90796d9 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "symbols-view": "0.55.0", "tabs": "0.41.0", "timecop": "0.19.0", - "tree-view": "0.100.0", + "tree-view": "0.101.0", "update-package-dependencies": "0.6.0", "welcome": "0.16.0", "whitespace": "0.22.0", From 6c9df6d91ae25857ec1cb69d11ccaf7bda2d7ee3 Mon Sep 17 00:00:00 2001 From: Ivan Zuzak Date: Sun, 15 Jun 2014 19:36:48 +0200 Subject: [PATCH 39/73] Handle mousedown events only for left button in editors --- src/editor-component.coffee | 2 ++ src/editor-view.coffee | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/editor-component.coffee b/src/editor-component.coffee index d278905ac..fd663103b 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -469,6 +469,8 @@ EditorComponent = React.createClass editor.insertText(char) onMouseDown: (event) -> + return unless event.button is 0 # only handle the left mouse button + {editor} = @props {detail, shiftKey, metaKey} = event screenPosition = @screenPositionForMouseEvent(event) diff --git a/src/editor-view.coffee b/src/editor-view.coffee index 731e87448..7d05b229c 100644 --- a/src/editor-view.coffee +++ b/src/editor-view.coffee @@ -368,6 +368,8 @@ class EditorView extends View false if @isFocused @overlayer.on 'mousedown', (e) => + return unless e.which is 1 # only handle the left mouse button + @overlayer.hide() clickedElement = document.elementFromPoint(e.pageX, e.pageY) @overlayer.show() From 7aa233d9d67eecc541cbd3841fc3e212fd9cf0a0 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 09:01:05 -0700 Subject: [PATCH 40/73] Update markdown-preview@0.80 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cb90796d9..d05ced1b1 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "image-view": "0.35.0", "keybinding-resolver": "0.18.0", "link": "0.22.0", - "markdown-preview": "0.79.0", + "markdown-preview": "0.80.0", "metrics": "0.32.0", "open-on-github": "0.28.0", "package-generator": "0.30.0", From 422c4d41d1a3216a83b54c779c407776bdab4f4e Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 09:13:54 -0700 Subject: [PATCH 41/73] Upgrade to settings-view@0.122 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d05ced1b1..41e38a7e3 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "open-on-github": "0.28.0", "package-generator": "0.30.0", "release-notes": "0.32.0", - "settings-view": "0.121.0", + "settings-view": "0.122.0", "snippets": "0.45.0", "spell-check": "0.37.0", "status-bar": "0.40.0", From bec3d4effc58f8492be6415a97b54afab7f384a7 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 09:40:30 -0700 Subject: [PATCH 42/73] Delete fixtures for force re-checkout --- script/cibuild | 1 + 1 file changed, 1 insertion(+) diff --git a/script/cibuild b/script/cibuild index 6e76d8831..7847c5af8 100755 --- a/script/cibuild +++ b/script/cibuild @@ -39,6 +39,7 @@ cp.safeExec.bind(global, 'npm install npm', {cwd: path.resolve(__dirname, '..', if (error) process.exit(1); require('fs-plus').removeSync.bind(global, path.join(homeDir, '.atom')) + require('fs-plus').removeSync(path.resolve(__dirname, '..', 'spec', 'fixtures')) var async = require('async'); var gruntPath = path.join('build', 'node_modules', '.bin', 'grunt') + (process.platform === 'win32' ? '.cmd' : ''); var tasks = [ From 07eb2585d6585d82ce19be9735b62c43e635477c Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 09:43:45 -0700 Subject: [PATCH 43/73] Remove fixtures cleaning --- script/cibuild | 1 - 1 file changed, 1 deletion(-) diff --git a/script/cibuild b/script/cibuild index 7847c5af8..6e76d8831 100755 --- a/script/cibuild +++ b/script/cibuild @@ -39,7 +39,6 @@ cp.safeExec.bind(global, 'npm install npm', {cwd: path.resolve(__dirname, '..', if (error) process.exit(1); require('fs-plus').removeSync.bind(global, path.join(homeDir, '.atom')) - require('fs-plus').removeSync(path.resolve(__dirname, '..', 'spec', 'fixtures')) var async = require('async'); var gruntPath = path.join('build', 'node_modules', '.bin', 'grunt') + (process.platform === 'win32' ? '.cmd' : ''); var tasks = [ From 261421b609577420f5efc397d93aac66111e820c Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 10:03:11 -0700 Subject: [PATCH 44/73] Upgrade to settings-view@0.123 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 41e38a7e3..e832fdb32 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "open-on-github": "0.28.0", "package-generator": "0.30.0", "release-notes": "0.32.0", - "settings-view": "0.122.0", + "settings-view": "0.123.0", "snippets": "0.45.0", "spell-check": "0.37.0", "status-bar": "0.40.0", From bc8a5f4b2342436faf4c5651d120205b2eecb695 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 10:03:29 -0700 Subject: [PATCH 45/73] Fail on windows if specs fail --- build/tasks/spec-task.coffee | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/build/tasks/spec-task.coffee b/build/tasks/spec-task.coffee index 6ade6124e..9a2dbc585 100644 --- a/build/tasks/spec-task.coffee +++ b/build/tasks/spec-task.coffee @@ -105,7 +105,4 @@ module.exports = (grunt) -> failures.push "atom core" if coreSpecFailed grunt.log.error("[Error]".red + " #{failures.join(', ')} spec(s) failed") if failures.length > 0 - if process.platform is 'win32' - done() # TODO remove once all specs consistently pass - else - done(!coreSpecFailed and failedPackages.length == 0) + done(!coreSpecFailed and failedPackages.length == 0) From ef2337359ba98847c60661ddd1666a96c4a86f21 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 10:21:09 -0700 Subject: [PATCH 46/73] Upgrade to settings-view@0.124 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e832fdb32..103602c6d 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "open-on-github": "0.28.0", "package-generator": "0.30.0", "release-notes": "0.32.0", - "settings-view": "0.123.0", + "settings-view": "0.124.0", "snippets": "0.45.0", "spell-check": "0.37.0", "status-bar": "0.40.0", From d83547b9f4308e10cd7ecde5281a3d5877ce58dd Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 11:07:55 -0700 Subject: [PATCH 47/73] Upgrade to setings-view@0.125 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 103602c6d..da3d21295 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "open-on-github": "0.28.0", "package-generator": "0.30.0", "release-notes": "0.32.0", - "settings-view": "0.124.0", + "settings-view": "0.125.0", "snippets": "0.45.0", "spell-check": "0.37.0", "status-bar": "0.40.0", From ede6a081a4f605045693d66749dcedfc2a0c49d7 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 11:13:38 -0700 Subject: [PATCH 48/73] Upgrade to settings-view@0.126 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index da3d21295..d8647133b 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "open-on-github": "0.28.0", "package-generator": "0.30.0", "release-notes": "0.32.0", - "settings-view": "0.125.0", + "settings-view": "0.126.0", "snippets": "0.45.0", "spell-check": "0.37.0", "status-bar": "0.40.0", From 9bf374d4e55ff7ead11f9d7bfd059387c93006a1 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 12:33:18 -0700 Subject: [PATCH 49/73] Upgrade to language-ruby@0.29 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cb90796d9..abcb34099 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "language-php": "0.15.0", "language-property-list": "0.7.0", "language-python": "0.18.0", - "language-ruby": "0.28.0", + "language-ruby": "0.29.0", "language-ruby-on-rails": "0.14.0", "language-sass": "0.13.0", "language-shellscript": "0.8.0", From ba18c65dacd5264be607356b85ff29db1b61b9ee Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 12:37:04 -0700 Subject: [PATCH 50/73] Ignore plist tests/ --- build/tasks/build-task.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/build/tasks/build-task.coffee b/build/tasks/build-task.coffee index e4ff2578c..76ae4b056 100644 --- a/build/tasks/build-task.coffee +++ b/build/tasks/build-task.coffee @@ -48,6 +48,7 @@ module.exports = (grunt) -> path.join('bootstrap', 'docs') path.join('bootstrap', 'examples') path.join('pegjs', 'examples') + path.join('plist', 'tests') # Add .* to avoid matching hunspell_dictionaries. path.join('spellchecker', 'vendor', 'hunspell', '.*') path.join('xmldom', 'test') From 72d1eb24a3f09d342e9578c1832e2be4443a671b Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 12:53:34 -0700 Subject: [PATCH 51/73] Ignore build/Release/obj directory --- build/tasks/build-task.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/build/tasks/build-task.coffee b/build/tasks/build-task.coffee index 76ae4b056..5a9f6293a 100644 --- a/build/tasks/build-task.coffee +++ b/build/tasks/build-task.coffee @@ -54,6 +54,7 @@ module.exports = (grunt) -> path.join('xmldom', 'test') path.join('jasmine-reporters', 'ext') path.join('build', 'Release', 'obj.target') + path.join('build', 'Release', 'obj') path.join('build', 'Release', '.deps') path.join('vendor', 'apm') path.join('resources', 'mac') From a66f81d70abffcda3d8bc46fa8d38038cc26dc90 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 12:56:39 -0700 Subject: [PATCH 52/73] Don't include *.pdb files --- build/tasks/build-task.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/build/tasks/build-task.coffee b/build/tasks/build-task.coffee index 5a9f6293a..d69ca2009 100644 --- a/build/tasks/build-task.coffee +++ b/build/tasks/build-task.coffee @@ -56,6 +56,7 @@ module.exports = (grunt) -> path.join('build', 'Release', 'obj.target') path.join('build', 'Release', 'obj') path.join('build', 'Release', '.deps') + path.join('build', 'Release', '.*\\.pdb') path.join('vendor', 'apm') path.join('resources', 'mac') path.join('resources', 'win') From e9bcb851c3315225bf63e6a1daaa14e5ab606d5f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 14:13:43 -0700 Subject: [PATCH 53/73] Escape ignored patterns --- build/tasks/build-task.coffee | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/build/tasks/build-task.coffee b/build/tasks/build-task.coffee index d69ca2009..028485933 100644 --- a/build/tasks/build-task.coffee +++ b/build/tasks/build-task.coffee @@ -1,5 +1,6 @@ fs = require 'fs' path = require 'path' +_ = require 'underscore-plus' module.exports = (grunt) -> {cp, isAtomPackage, mkdir, rm} = require('./task-helpers')(grunt) @@ -49,18 +50,22 @@ module.exports = (grunt) -> path.join('bootstrap', 'examples') path.join('pegjs', 'examples') path.join('plist', 'tests') - # Add .* to avoid matching hunspell_dictionaries. - path.join('spellchecker', 'vendor', 'hunspell', '.*') path.join('xmldom', 'test') path.join('jasmine-reporters', 'ext') path.join('build', 'Release', 'obj.target') path.join('build', 'Release', 'obj') path.join('build', 'Release', '.deps') - path.join('build', 'Release', '.*\\.pdb') path.join('vendor', 'apm') path.join('resources', 'mac') path.join('resources', 'win') ] + ignoredPaths = ignoredPaths.map (ignoredPath) -> _.escapeRegExp(ignoredPath) + + # Put patterns here that shouldn't be escaped + ignoredPaths.push _.escapeRegExp(path.join('build', 'Release') + path.sep) + '.*\\.pdb' + # Add .* to avoid matching hunspell_dictionaries. + ignoredPaths.push _.escapeRegExp(path.join('spellchecker', 'vendor', 'hunspell') + path.sep) + ".*" + # Hunspell dictionaries are only not needed on OS X. if process.platform is 'darwin' ignoredPaths.push path.join('spellchecker', 'vendor', 'hunspell_dictionaries') From bcc888bfb41f467f31a8d89c279ae9630416fec3 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 14:15:23 -0700 Subject: [PATCH 54/73] :lipstick: --- build/tasks/build-task.coffee | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/tasks/build-task.coffee b/build/tasks/build-task.coffee index 028485933..ab8cbb768 100644 --- a/build/tasks/build-task.coffee +++ b/build/tasks/build-task.coffee @@ -61,10 +61,9 @@ module.exports = (grunt) -> ] ignoredPaths = ignoredPaths.map (ignoredPath) -> _.escapeRegExp(ignoredPath) - # Put patterns here that shouldn't be escaped - ignoredPaths.push _.escapeRegExp(path.join('build', 'Release') + path.sep) + '.*\\.pdb' # Add .* to avoid matching hunspell_dictionaries. ignoredPaths.push _.escapeRegExp(path.join('spellchecker', 'vendor', 'hunspell') + path.sep) + ".*" + ignoredPaths.push _.escapeRegExp(path.join('build', 'Release') + path.sep) + '.*\\.pdb' # Hunspell dictionaries are only not needed on OS X. if process.platform is 'darwin' From 416266b815bc9dcf2dde6881777ad62c4c28b2b4 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 14:29:17 -0700 Subject: [PATCH 55/73] :lipstick: Use string interpolation --- build/tasks/build-task.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/tasks/build-task.coffee b/build/tasks/build-task.coffee index ab8cbb768..1484b6a07 100644 --- a/build/tasks/build-task.coffee +++ b/build/tasks/build-task.coffee @@ -62,8 +62,8 @@ module.exports = (grunt) -> ignoredPaths = ignoredPaths.map (ignoredPath) -> _.escapeRegExp(ignoredPath) # Add .* to avoid matching hunspell_dictionaries. - ignoredPaths.push _.escapeRegExp(path.join('spellchecker', 'vendor', 'hunspell') + path.sep) + ".*" - ignoredPaths.push _.escapeRegExp(path.join('build', 'Release') + path.sep) + '.*\\.pdb' + ignoredPaths.push "#{_.escapeRegExp(path.join('spellchecker', 'vendor', 'hunspell') + path.sep)}.*" + ignoredPaths.push "#{_.escapeRegExp(path.join('build', 'Release') + path.sep)}.*\\.pdb" # Hunspell dictionaries are only not needed on OS X. if process.platform is 'darwin' From de6fb2802b8c53e64f8f1d5794e5c5010a3e918e Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 15:26:10 -0700 Subject: [PATCH 56/73] Upgrade to language-yaml@0.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b2978cb7..b04418ecf 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "language-todo": "0.10.0", "language-toml": "0.12.0", "language-xml": "0.14.0", - "language-yaml": "0.6.0" + "language-yaml": "0.7.0" }, "private": true, "scripts": { From 5788e30269e42d84c6ceb6a378fb4ac4eab335b6 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 16:02:50 -0700 Subject: [PATCH 57/73] Upgrade to tree-view@0.102 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b04418ecf..4a1f605e1 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "symbols-view": "0.55.0", "tabs": "0.41.0", "timecop": "0.19.0", - "tree-view": "0.101.0", + "tree-view": "0.102.0", "update-package-dependencies": "0.6.0", "welcome": "0.16.0", "whitespace": "0.22.0", From 4e73fe3f24b1a77134bd0716a74db8974ac6dd6a Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 16 Jun 2014 17:55:13 -0700 Subject: [PATCH 58/73] Upgrade to settings-view@0.127 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a1f605e1..b2b4f75c2 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "open-on-github": "0.28.0", "package-generator": "0.30.0", "release-notes": "0.32.0", - "settings-view": "0.126.0", + "settings-view": "0.127.0", "snippets": "0.45.0", "spell-check": "0.37.0", "status-bar": "0.40.0", From 6a08618821ee869b56d982133bea359203e79fd7 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 08:29:38 -0700 Subject: [PATCH 59/73] Upgrade to package-generator@0.31 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b2b4f75c2..9a52dd7c9 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "markdown-preview": "0.80.0", "metrics": "0.32.0", "open-on-github": "0.28.0", - "package-generator": "0.30.0", + "package-generator": "0.31.0", "release-notes": "0.32.0", "settings-view": "0.127.0", "snippets": "0.45.0", From d0513cb95d5a88bf0f51a91b57b5da45e66f0a5f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 08:49:57 -0700 Subject: [PATCH 60/73] :memo: Doc optional param and default property value --- src/cursor.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cursor.coffee b/src/cursor.coffee index df9e5e06b..08e8f7e94 100644 --- a/src/cursor.coffee +++ b/src/cursor.coffee @@ -114,9 +114,10 @@ class Cursor extends Model # Public: Get the RegExp used by the cursor to determine what a "word" is. # - # options: An {Object} with the following keys: + # options: An optional {Object} with the following keys: # :includeNonWordCharacters - A {Boolean} indicating whether to include # non-word characters in the regex. + # (default: true) # # Returns a {RegExp}. wordRegExp: ({includeNonWordCharacters}={})-> From 65e80cd65eb35a9c36ced9dda5705a8d92d5fdac Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 09:34:07 -0700 Subject: [PATCH 61/73] Upgrade to symbols-view@0.56 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9a52dd7c9..243f10a2b 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "spell-check": "0.37.0", "status-bar": "0.40.0", "styleguide": "0.29.0", - "symbols-view": "0.55.0", + "symbols-view": "0.56.0", "tabs": "0.41.0", "timecop": "0.19.0", "tree-view": "0.102.0", From 1bd00f1d0ac9b3db16857ab6e1d6c074a3ae6f26 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 10:36:06 -0700 Subject: [PATCH 62/73] Upgrade to language-c@0.18 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 243f10a2b..71bdcc337 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "welcome": "0.16.0", "whitespace": "0.22.0", "wrap-guide": "0.18.0", - "language-c": "0.17.0", + "language-c": "0.18.0", "language-coffee-script": "0.22.0", "language-css": "0.17.0", "language-gfm": "0.39.0", From de8b498402a66bd919fcc6e21be4563bf6c777d1 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 11:28:01 -0700 Subject: [PATCH 63/73] Add deprecations to spec runner --- spec/atom-reporter.coffee | 37 +++++++++++++++++++++++++++++++++++++ static/jasmine.less | 24 ++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/spec/atom-reporter.coffee b/spec/atom-reporter.coffee index ac1c9b98c..d1e7590b0 100644 --- a/spec/atom-reporter.coffee +++ b/spec/atom-reporter.coffee @@ -2,6 +2,7 @@ path = require 'path' _ = require 'underscore-plus' {convertStackTrace} = require 'coffeestack' {View, $, $$} = require '../src/space-pen-extensions' +grim = require 'grim' sourceMaps = {} formatStackTrace = (spec, message='', stackTrace) -> @@ -52,6 +53,11 @@ class AtomReporter extends View @div outlet: "message", class: 'message' @div outlet: "results", class: 'results' + @div outlet: "deprecations", class: 'status alert alert-warning', => + @span outlet: 'deprecationStatus', '0 deprecations' + @div class: 'deprecation-toggle' + @div outlet: 'deprecationList', class: 'deprecation-list' + startedAt: null runningSpecCount: 0 completeSpecCount: 0 @@ -59,6 +65,7 @@ class AtomReporter extends View failedCount: 0 skippedCount: 0 totalSpecCount: 0 + deprecationCount: 0 @timeoutId: 0 reportRunnerStarting: (runner) -> @@ -88,6 +95,28 @@ class AtomReporter extends View reportSpecStarting: (spec) -> @specStarted(spec) + addDeprecations: (spec) -> + deprecations = grim.getDeprecations() + @deprecationCount += deprecations.length + if @deprecationCount > 1 + @deprecationStatus.text("#{@deprecationCount} deprecations") + else + @deprecationStatus.text("1 deprecation") + + for deprecation in deprecations + @deprecationList.append $$ -> + @div class: 'padded', => + @div class: 'result-message fail deprecation-message', deprecation.message + + for stack in deprecation.stacks + fullStack = stack.map ({functionName, location}) -> + if functionName is '' + " at #{location}" + else + " at #{functionName} (#{location})" + @pre class: 'stack-trace padded', formatStackTrace(spec, deprecation.message, fullStack.join('\n')) + grim.clearDeprecations() + handleEvents: -> $(document).on "click", ".spec-toggle", ({currentTarget}) => element = $(currentTarget) @@ -96,6 +125,13 @@ class AtomReporter extends View element.toggleClass('folded') false + $(document).on "click", ".deprecation-toggle", ({currentTarget}) => + element = $(currentTarget) + deprecationList = $(document).find('.deprecation-list') + deprecationList.toggle() + element.toggleClass('folded') + false + updateSpecCounts: -> if @skippedCount specCount = "#{@completeSpecCount - @skippedCount}/#{@totalSpecCount - @skippedCount} (#{@skippedCount} skipped)" @@ -175,6 +211,7 @@ class AtomReporter extends View specView = new SpecResultView(spec) specView.attach() @failedCount++ + @addDeprecations(spec) class SuiteResultView extends View @content: -> diff --git a/static/jasmine.less b/static/jasmine.less index 9207dff7c..23efbf15c 100644 --- a/static/jasmine.less +++ b/static/jasmine.less @@ -135,6 +135,10 @@ body { padding: 5px 0 5px 0; } + .result-message.deprecation-message { + color: #f0ad4e; + } + .stack-trace { font-size: 12px; margin: 5px 0 0 0; @@ -174,4 +178,24 @@ body { // overflow: hidden; } } + + .deprecation-toggle { + .octicon(fold); + float: right; + cursor: pointer; + opacity: 0; + color: #999; + + &.folded { + .octicon(unfold); + } + } + + .deprecation-toggle:hover { + color: #333; + } + + &:hover .deprecation-toggle { + opacity: 1; + } } From 3601aac1364fba40cd682007dc5402f564266f06 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 11:32:53 -0700 Subject: [PATCH 64/73] Correct deprecation label --- spec/atom-reporter.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/atom-reporter.coffee b/spec/atom-reporter.coffee index d1e7590b0..517a14aef 100644 --- a/spec/atom-reporter.coffee +++ b/spec/atom-reporter.coffee @@ -98,10 +98,10 @@ class AtomReporter extends View addDeprecations: (spec) -> deprecations = grim.getDeprecations() @deprecationCount += deprecations.length - if @deprecationCount > 1 - @deprecationStatus.text("#{@deprecationCount} deprecations") - else + if @deprecationCount is 1 @deprecationStatus.text("1 deprecation") + else + @deprecationStatus.text("#{@deprecationCount} deprecations") for deprecation in deprecations @deprecationList.append $$ -> From bc85bd2e74a78ff867beb4bbaee0df14b7203cfe Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 11:34:21 -0700 Subject: [PATCH 65/73] Upgrade to bracket-matcher@0.46 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 71bdcc337..43017cf87 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "autosave": "0.14.0", "background-tips": "0.14.0", "bookmarks": "0.24.0", - "bracket-matcher": "0.45.0", + "bracket-matcher": "0.46.0", "command-palette": "0.22.0", "deprecation-cop": "0.7.0", "dev-live-reload": "0.31.0", From 3de926a1afa199c5a08b5ced6dbf607db6c175ae Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 11:36:07 -0700 Subject: [PATCH 66/73] Hide when no deprecations --- spec/atom-reporter.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/atom-reporter.coffee b/spec/atom-reporter.coffee index 517a14aef..0497f35a3 100644 --- a/spec/atom-reporter.coffee +++ b/spec/atom-reporter.coffee @@ -53,7 +53,7 @@ class AtomReporter extends View @div outlet: "message", class: 'message' @div outlet: "results", class: 'results' - @div outlet: "deprecations", class: 'status alert alert-warning', => + @div outlet: "deprecations", class: 'status alert alert-warning', style: 'display: none', => @span outlet: 'deprecationStatus', '0 deprecations' @div class: 'deprecation-toggle' @div outlet: 'deprecationList', class: 'deprecation-list' @@ -98,6 +98,7 @@ class AtomReporter extends View addDeprecations: (spec) -> deprecations = grim.getDeprecations() @deprecationCount += deprecations.length + @deprecations.show() if @deprecationCount > 0 if @deprecationCount is 1 @deprecationStatus.text("1 deprecation") else From 34b93554c3b9890e9a44a54570fdb4b7067a5eb0 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 11:55:53 -0700 Subject: [PATCH 67/73] Upgrade to tree-view@0.103 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 43017cf87..dd07ab087 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "symbols-view": "0.56.0", "tabs": "0.41.0", "timecop": "0.19.0", - "tree-view": "0.102.0", + "tree-view": "0.103.0", "update-package-dependencies": "0.6.0", "welcome": "0.16.0", "whitespace": "0.22.0", From 345d20dc4a341c5c7e66ed6c907a651679a1f967 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 17 Jun 2014 14:04:41 -0600 Subject: [PATCH 68/73] Prepare 0.105.0 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd07ab087..48d784eaf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "0.104.0", + "version": "0.105.0", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From 2af8404ea982240b904e4f524521e314d8dd248b Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 13:07:58 -0700 Subject: [PATCH 69/73] Upgrade to bracket-matcher@0.47 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 48d784eaf..cd0b1ee6e 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "autosave": "0.14.0", "background-tips": "0.14.0", "bookmarks": "0.24.0", - "bracket-matcher": "0.46.0", + "bracket-matcher": "0.47.0", "command-palette": "0.22.0", "deprecation-cop": "0.7.0", "dev-live-reload": "0.31.0", From 72e4be60c0f245c33185a67693f359c3eab1c825 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 14:40:49 -0700 Subject: [PATCH 70/73] Upgrade to markdown-preview@0.81 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cd0b1ee6e..72074f2e3 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "image-view": "0.35.0", "keybinding-resolver": "0.18.0", "link": "0.22.0", - "markdown-preview": "0.80.0", + "markdown-preview": "0.81.0", "metrics": "0.32.0", "open-on-github": "0.28.0", "package-generator": "0.31.0", From eaa7593b27f982eb3e9fbb965c602bda4b87359a Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 14:42:57 -0700 Subject: [PATCH 71/73] Add single selection menu item --- menus/darwin.cson | 1 + menus/linux.cson | 1 + menus/win32.cson | 1 + 3 files changed, 3 insertions(+) diff --git a/menus/darwin.cson b/menus/darwin.cson index 0f8b3ad10..647f20d6a 100644 --- a/menus/darwin.cson +++ b/menus/darwin.cson @@ -109,6 +109,7 @@ submenu: [ { label: 'Add Selection Above', command: 'editor:add-selection-above' } { label: 'Add Selection Below', command: 'editor:add-selection-below' } + { label: 'Single Selection', command: 'editor:consolidate-selections'} { label: 'Split into Lines', command: 'editor:split-selections-into-lines'} { type: 'separator' } { label: 'Select to Top', command: 'core:select-to-top' } diff --git a/menus/linux.cson b/menus/linux.cson index abdebf11c..850b25d91 100644 --- a/menus/linux.cson +++ b/menus/linux.cson @@ -108,6 +108,7 @@ { label: 'Add Selection &Above', command: 'editor:add-selection-above' } { label: 'Add Selection &Below', command: 'editor:add-selection-below' } { label: 'S&plit into Lines', command: 'editor:split-selections-into-lines'} + { label: 'Single Selection', command: 'editor:consolidate-selections'} { type: 'separator' } { label: 'Select to &Top', command: 'core:select-to-top' } { label: 'Select to Botto&m', command: 'core:select-to-bottom' } diff --git a/menus/win32.cson b/menus/win32.cson index d8a343a6c..6f43528bf 100644 --- a/menus/win32.cson +++ b/menus/win32.cson @@ -127,6 +127,7 @@ { label: 'Add Selection &Above', command: 'editor:add-selection-above' } { label: 'Add Selection &Below', command: 'editor:add-selection-below' } { label: 'S&plit into Lines', command: 'editor:split-selections-into-lines'} + { label: 'Single Selection', command: 'editor:consolidate-selections'} { type: 'separator' } { label: 'Select to &Top', command: 'core:select-to-top' } { label: 'Select to Botto&m', command: 'core:select-to-bottom' } From 06a55250b9407a388f358a154453d7caba63f50c Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 15:11:54 -0700 Subject: [PATCH 72/73] Upgrade to bookmarks@0.25 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 72074f2e3..4dd7ab68e 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "autoflow": "0.17.0", "autosave": "0.14.0", "background-tips": "0.14.0", - "bookmarks": "0.24.0", + "bookmarks": "0.25.0", "bracket-matcher": "0.47.0", "command-palette": "0.22.0", "deprecation-cop": "0.7.0", From b302fdc5538fba8c40d376e29f722089713ea801 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 17 Jun 2014 16:41:31 -0700 Subject: [PATCH 73/73] Upgrade to markdown-preview@0.82 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4dd7ab68e..cc6c78a3c 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "image-view": "0.35.0", "keybinding-resolver": "0.18.0", "link": "0.22.0", - "markdown-preview": "0.81.0", + "markdown-preview": "0.82.0", "metrics": "0.32.0", "open-on-github": "0.28.0", "package-generator": "0.31.0",