Comparar commits

...

161 Commits

Autor SHA1 Mensagem Data
Kevin Sawicki 1b393e4f48 ⬆️ release-notes@0.39 2014-12-16 12:57:00 -08:00
Kevin Sawicki e84bd28c64 Add --rm flag 2014-12-16 12:38:34 -08:00
Kevin Sawicki bbf199fb60 ⬆️ release-notes@0.38 2014-12-16 11:38:28 -08:00
Ben Ogle 367a4c4bd3 Merge pull request #4630 from atom/bo-better-save-notification
Better save notifications
2014-12-16 11:07:34 -08:00
Kevin Sawicki 7d74f8179b ⬆️ apm@0.116 2014-12-16 10:56:05 -08:00
Kevin Sawicki bcafef385f Merge pull request #4632 from atom/ks-windows-atom-sh
Add atom.sh and apm.sh Windows scripts
2014-12-16 10:00:25 -08:00
Kevin Sawicki 83d5890962 Add missing .. segment 2014-12-16 09:40:16 -08:00
Kevin Sawicki 7ee3ccb43d Move up one more directory 2014-12-16 09:33:16 -08:00
Kevin Sawicki 9126f2e45c Include apm.sh 2014-12-16 09:19:40 -08:00
Kevin Sawicki 89ed95e2ae Add apm sh shim 2014-12-16 09:08:31 -08:00
Ben Ogle 27174b2880 Betta spec description 2014-12-16 09:07:44 -08:00
Kevin Sawicki ed1fbcc8e7 Use forward slashes in sh path 2014-12-16 09:02:09 -08:00
Kevin Sawicki 307ce4dc54 Write atom.sh to atom in bin folder 2014-12-15 17:52:56 -08:00
Kevin Sawicki 0833be4c27 Use correct variable name for sh text 2014-12-15 17:52:21 -08:00
Kevin Sawicki af116b2b8a Install atom.sh shim 2014-12-15 17:50:59 -08:00
Kevin Sawicki 59d582722b Add .sh extension 2014-12-15 17:48:04 -08:00
Kevin Sawicki 9239b95241 Use $0 instead of %~dp0 2014-12-15 17:47:01 -08:00
Kevin Sawicki ab8b5959d3 Add initial Windows atom wrapper script 2014-12-15 17:46:34 -08:00
Ben Ogle 5ff7a286fc 💄 2014-12-15 17:42:38 -08:00
Ben Ogle f199c71fa8 Specs for the eacces error 2014-12-15 17:42:27 -08:00
Ben Ogle 265601cbdb Nof 2014-12-15 17:20:13 -08:00
Ben Ogle 67b39845c8 Add a better error message when a directory cannot be written to.
Closes #4607
2014-12-15 17:19:54 -08:00
Ben Ogle a42505b6ae Handle is a directory error
Closes #4616
2014-12-15 17:08:46 -08:00
Nathan Sobo f026d30426 💄 Call deprecate on Grim local in Config 2014-12-15 17:06:02 -08:00
Max Brunsfeld b4db61a7e7 Fix Config::getSettings 2014-12-15 16:25:19 -08:00
Ben Ogle fad93b8d7e Remove fake catch of Q errors on open
Closes #4628
2014-12-15 15:47:10 -08:00
Max Brunsfeld feb72b38f8 ⬆️ snippets@0.59.0 2014-12-15 14:20:12 -08:00
Max Brunsfeld 23ce2cd1ac ⬆️ scoped-property-store and underscore-plus 2014-12-15 13:06:44 -08:00
Kevin Sawicki ee2509e90f ⬆️ notifications@0.18 2014-12-15 12:14:50 -08:00
Kevin Sawicki ca5e66bbd1 ⬆️ grammar-selector@0.38 2014-12-15 11:21:51 -08:00
Kevin Sawicki 3389555d71 ⬆️ encoding-selector@0.12 2014-12-15 11:19:09 -08:00
Kevin Sawicki 202426a85b Remove unneeded dotAtomPath assignment 2014-12-15 10:42:24 -08:00
Kevin Sawicki a6d68f8683 ⬆️ deprecation-cop@0.20 2014-12-15 10:18:33 -08:00
Kevin Sawicki 6674bfbf97 ⬆️ release-notes@0.37 2014-12-15 10:10:59 -08:00
Kevin Sawicki cd5309e494 ⬆️ incompatible-packages@0.16 2014-12-15 10:07:27 -08:00
Kevin Sawicki 11b2f4a18d ⬆️ image-view@0.44 2014-12-15 10:03:08 -08:00
Kevin Sawicki 88442ccb78 ⬆️ encoding-selector@0.11 2014-12-15 09:59:41 -08:00
Kevin Sawicki c4768cb266 ⬆️ spell-check@0.45 2014-12-15 09:41:17 -08:00
Kevin Sawicki cf772295fb ⬆️ autoflow@0.20 2014-12-15 09:39:36 -08:00
Kevin Sawicki dabedeb065 ⬆️ language-css@0.24 2014-12-15 09:35:35 -08:00
Kevin Sawicki 224e6cb5d4 ⬆️ styleguide@0.36 2014-12-15 09:31:01 -08:00
Kevin Sawicki 3f745e3d67 ⬆️ language-todo@0.15 2014-12-15 09:19:30 -08:00
Ben Ogle d9a5e3c7e1 Upgrade notifications to fix fatal notifications in windows 2014-12-12 16:33:04 -08:00
Ben Ogle d272606408 Upgrade tabs to fix exception 2014-12-12 16:32:37 -08:00
Kevin Sawicki 263567649d Only call log when deprecations exist 2014-12-12 15:37:49 -08:00
Kevin Sawicki c345532864 stdout -> stderr 2014-12-12 14:57:31 -08:00
Kevin Sawicki c0c4e65b5d Warnings to do stderr 2014-12-12 14:54:48 -08:00
Kevin Sawicki b441b3cd6f Remove prefix and suffix from deprecation lines 2014-12-12 14:01:33 -08:00
Kevin Sawicki 3a51228899 Label output 2014-12-12 13:53:52 -08:00
Kevin Sawicki 42d5d0ba87 Log deprecations from apm test output 2014-12-12 13:52:46 -08:00
Kevin Sawicki a1d0635d98 Start logging deprecations on CI 2014-12-12 13:24:10 -08:00
Kevin Sawicki b66e931a99 Only run package specs when project path exists
Closes #4579
2014-12-12 13:18:14 -08:00
Kevin Sawicki 0a7ea419a0 ⬆️ git-utils@2.2 2014-12-12 12:59:42 -08:00
Kevin Sawicki 91770f2885 Add buffer subscriptions to repo's subscriptions
Closes #4570
2014-12-12 12:26:09 -08:00
Kevin Sawicki d4c7fe4b47 ⬆️ keybinding-resolver@0.24 2014-12-12 12:22:29 -08:00
Kevin Sawicki 8b848c1853 Merge pull request #4560 from atom/ks-atom-windows-wrapper
Add better atom.cmd exe wrapper
2014-12-12 12:20:42 -08:00
Kevin Sawicki eef6532b8c atom.exe is now up one more directory 2014-12-12 12:11:38 -08:00
Kevin Sawicki 43de383b14 Use \r\n line endings for cmd shims 2014-12-12 12:11:38 -08:00
Kevin Sawicki 9d3aaad394 atom.exe is now up on more directory 2014-12-12 12:11:38 -08:00
Kevin Sawicki 3cf104444c Add missing resources segment 2014-12-12 12:11:38 -08:00
Kevin Sawicki f91741eec1 Install cli folder to resources directory 2014-12-12 12:11:37 -08:00
Kevin Sawicki 8f77d65aab Add --executed-from as first argument 2014-12-12 12:11:37 -08:00
Kevin Sawicki 3dced04aab Add -t and --test to expected output args 2014-12-12 12:11:37 -08:00
Kevin Sawicki bac9eac1fc Resolve atom path and executed-from in atom.js 2014-12-12 12:11:37 -08:00
Kevin Sawicki d3e53c5ada Use correct path variable 2014-12-12 12:11:37 -08:00
Kevin Sawicki cad8afe78b Use correct resources path 2014-12-12 12:11:37 -08:00
Kevin Sawicki a7f30c63cb Don't bundle atom.sh on Windows 2014-12-12 12:11:37 -08:00
Kevin Sawicki 1d0dd86041 Use new atom.cmd wrapper from installer 2014-12-12 12:11:37 -08:00
Kevin Sawicki 690ece3a9e Remove escaped slashes 2014-12-12 12:11:37 -08:00
Kevin Sawicki 100a1f5764 Parse output flags in atom.cmd 2014-12-12 12:11:37 -08:00
Kevin Sawicki 35f49be82a Pass through arguments 2014-12-12 12:11:36 -08:00
Kevin Sawicki 4225c25ad7 Add initial atom.cmd 2014-12-12 12:11:36 -08:00
Kevin Sawicki 330592e2bd Add atom.cmd 2014-12-12 12:11:36 -08:00
Kevin Sawicki d306876229 Remove disconnect call 2014-12-12 12:11:36 -08:00
Kevin Sawicki 47aa269de5 Exit main process 2014-12-12 12:11:36 -08:00
Kevin Sawicki 2a80762d5b Disconnect spawned process 2014-12-12 12:11:36 -08:00
Kevin Sawicki 42ab14c2cb Add initial atom.exe wrapper 2014-12-12 12:11:36 -08:00
Ben Ogle e83784e141 Merge pull request #4535 from mark-hahn/activateNowAPI
Fixed activateNow when no activation promise
2014-12-12 11:58:26 -08:00
Ben Ogle cedb41f4b0 Merge pull request #4581 from mnquintana/patch-2
Add OS default fonts for Ubuntu (Unity) and Fedora (GNOME 3)
2014-12-12 11:20:16 -08:00
Machiste N. Quintana d873f3d255 Add OS default fonts for Ubuntu (Unity) and Fedora (GNOME 3) 2014-12-12 14:01:57 -05:00
Ben Ogle 2781c24fce Upgrade solarized-dark-syntax to fix some punctuation 2014-12-12 10:52:38 -08:00
Ben Ogle 2a45bd7f69 Upgrade dev live reload to remove deprecations 2014-12-12 10:52:38 -08:00
Ben Ogle f4fab84869 Upgrade metrics to remove deprecations 2014-12-12 10:52:38 -08:00
Kevin Sawicki 204e5a6b46 Prepare 0.159 2014-12-12 09:40:23 -08:00
Kevin Sawicki 9459bd15a2 ⬆️ language-javascript@0.51 2014-12-12 09:23:43 -08:00
Ben Ogle 6cd96c8284 Upgrade deprecation-cop to remove deprecations 2014-12-11 17:27:06 -08:00
Ben Ogle 2ceced2b84 Upgrade notifications@0.16.0 2014-12-11 17:22:07 -08:00
Ben Ogle be78572d78 Upgrade notifications to fix errors with semicolons 2014-12-11 17:07:46 -08:00
Kevin Sawicki 61abda5166 ⬆️ tree-view@0.138 2014-12-11 16:54:24 -08:00
Kevin Sawicki 93f98ec14e ⬆️ styleguide@0.35 2014-12-11 16:39:34 -08:00
Kevin Sawicki d581c41c0e Update spec since { lines now outdent in JS 2014-12-11 16:35:21 -08:00
Nathan Sobo 252bef63bf Merge pull request #4566 from atom/mb-config-cleanup
Clean up config
2014-12-11 17:15:19 -07:00
Kevin Sawicki 9c63a4f517 ⬆️ language-javascript@0.50 2014-12-11 16:07:50 -08:00
Max Brunsfeld e7b0c3e519 Deprecate Config::getSettings
Also, remove support for getting all settings for a scope selector

Signed-off-by: Nathan Sobo <nathan@github.com>
2014-12-11 15:04:55 -08:00
Kevin Sawicki 697ccedbd3 Prepare 0.158 2014-12-11 14:18:09 -08:00
Nathan Sobo 87efc7e1df Only respond to stylesheet changes for mounted components
Refs #4493
2014-12-11 14:55:00 -07:00
Ben Ogle 6a0a694a7b Upgrade notifications to lessen noise 2014-12-11 13:53:05 -08:00
Kevin Sawicki be1f28b3d8 ⬆️ apm@0.114 2014-12-11 13:45:26 -08:00
Kevin Sawicki 32f7c72d28 ⬆️ language-javascript@0.49 2014-12-11 13:07:21 -08:00
Nathan Sobo d51a86e804 ⬆️ markdown-preview for deprecation fixes 2014-12-11 09:03:31 -07:00
Mark Hahn 93e3a5af2a Fixed activateNow when no activation promise 2014-12-10 23:00:14 -08:00
Ben Ogle 278a507653 Merge pull request #4531 from atom/bo-buffered-process-error
Better BufferedProcess error handling
2014-12-10 18:17:09 -08:00
Nathan Sobo 7422f4378e Add property filters to TextEditor::getDecorations methods
This makes it much easier to write tests that inspect the state of
decorations.
2014-12-10 19:11:50 -07:00
Ben Ogle f2ab14656b BufferedProcess::onDidThrowError -> ::onDidThrowError 2014-12-10 18:08:43 -08:00
Ben Ogle 453abf8b90 Update solarized-dark-syntax to fix ruby 2014-12-10 17:54:01 -08:00
Ben Ogle 7866f0819d Upgrade keybinding-resolver to fix the inability to unhide 2014-12-10 17:53:40 -08:00
Kevin Sawicki 921e3c581d ⬆️ keybinding-resolver@0.22 2014-12-10 17:29:17 -08:00
Max Brunsfeld 58aa87438d ⬆️ snippets@0.58.0
For deprecation fixes
2014-12-10 16:45:14 -08:00
Ben Ogle ad73902382 📝 Add docs 2014-12-10 16:27:05 -08:00
Ben Ogle bf63a9715c Add BufferedProcess::onDidThrowError() 2014-12-10 16:26:57 -08:00
Kevin Sawicki 06c52c6873 ⬆️ language-javascript@0.48 2014-12-10 16:21:33 -08:00
Kevin Sawicki 9ac27bc2f8 Grim.logDeprecationWarnings -> Grim.logDeprecations
Closes #4486
2014-12-10 16:05:36 -08:00
Ben Ogle 98caaf0d70 :up_arrow: fuzzy-finder@0.62.0 2014-12-10 15:30:29 -08:00
Ben Ogle a102d1e134 Upgrade styleguide to fix build 2014-12-10 15:14:36 -08:00
Ben Ogle 6caa86fb04 Upgrade styleguide to include colors 2014-12-10 14:54:12 -08:00
Max Brunsfeld b1e0c8132d ⬆️ tree-view@0.137.0 2014-12-10 14:39:05 -08:00
Kevin Sawicki f3947dd6e0 ⬆️ find-and-replace@0.152 2014-12-10 14:06:18 -08:00
Kevin Sawicki 27dbbabe09 Prepare 0.157 2014-12-10 13:34:06 -08:00
Max Brunsfeld 5950110860 ⬆️ status-bar@0.53.0
For new panel-like API
2014-12-10 12:31:46 -08:00
Kevin Sawicki ab5d71e6b5 ⬆️ encoding-selector@0.10 2014-12-10 12:25:43 -08:00
Kevin Sawicki 1ee2839245 📝 Mention config files 2014-12-10 09:22:51 -08:00
Max Brunsfeld a6f31ed791 Pass event to Cursor::onDidChangePosition callbacks 2014-12-09 17:21:03 -08:00
Max Brunsfeld e04b5a74d7 Fix position in Cursor::moveToBeginningOfPreviousParagraph
Also, remove unused parameters to private Cursor methods
2014-12-09 16:59:50 -08:00
Kevin Sawicki 4acf143f45 📝 Mention cuninst is not destructive 2014-12-09 16:50:28 -08:00
Kevin Sawicki 5ad5ce0841 📝 add or above 2014-12-09 16:40:53 -08:00
Kevin Sawicki 31d1ca12c1 📝 Add chocolatey uninstall doc 2014-12-09 16:37:54 -08:00
Kevin Sawicki ace3325db8 Remove chocolatey doc 2014-12-09 16:34:35 -08:00
Kevin Sawicki b718114fc4 📝 Tweak installer wording 2014-12-09 16:34:16 -08:00
Kevin Sawicki 1df8c77f41 Merge pull request #4322 from tsunamistate/upgrade-readme-windows
Upgrade Windows README
2014-12-09 16:31:56 -08:00
Kevin Sawicki 26e867d65e Remove squirrel logging 2014-12-09 16:02:36 -08:00
Nathan Sobo 2688761c29 ⬆️ keybinding-resolver for deprecation fixes 2014-12-09 16:38:51 -07:00
Nathan Sobo b64d9db198 ⬆️ image-view for deprecation fixes 2014-12-09 16:38:51 -07:00
Max Brunsfeld bc5b786bb2 ⬆️ styleguide@0.32.0
To fix build; avoid using devDependencies
2014-12-09 15:15:43 -08:00
Max Brunsfeld 13025c17f1 ⬆️ styleguide@0.31.0
For deprecation fixes
2014-12-09 14:59:40 -08:00
Max Brunsfeld 8b4b5230ab ⬆️ wrap-guide@0.26.0
For deprecation fixes
2014-12-09 14:57:15 -08:00
Kevin Sawicki 7d6d634ceb Prepare 0.156 2014-12-09 14:07:45 -08:00
Nathan Sobo b386b00bc0 Wait for next animation frame before measuring when stylesheets change
Fixes #4479
2014-12-09 14:56:33 -07:00
Kevin Sawicki 2028045254 ⬆️ incompatible-packages@0.15 2014-12-09 13:42:09 -08:00
Kevin Sawicki ca60dae630 ⬆️ incompatible-packages@0.14 2014-12-09 13:27:49 -08:00
Kevin Sawicki a5605bd408 ⬆️ incompatible-packages@0.13 2014-12-09 13:14:28 -08:00
Max Brunsfeld caf6fdd5ac Merge pull request #4478 from atom/mb-panel-markup
Allow PanelElements to be instantiated with markup
2014-12-09 13:05:35 -08:00
Kevin Sawicki 19872959bc ⬆️ incompatible-packages@0.12 2014-12-09 13:04:37 -08:00
Nathan Sobo 299ea18c58 Don’t try to upgrade CSS rules with no selector text
Fixes #4469
2014-12-09 13:41:33 -07:00
Nathan Sobo 966360e022 Set ::visible to false on panels when they are destroyed 2014-12-09 13:41:33 -07:00
Kevin Sawicki 70a2be849a ⬆️ symbols-view@0.70 2014-12-09 12:04:41 -08:00
Max Brunsfeld 1c7843d9b2 💄 2014-12-09 11:36:04 -08:00
Kevin Sawicki 5291f1c62c ⬆️ symbols-view@0.69 2014-12-09 11:32:47 -08:00
Max Brunsfeld c9e7cfc02c Allow PanelElements to be instantiated with markup 2014-12-09 11:24:59 -08:00
Ben Ogle e93ca3c901 Upgrade notifications to open issues on throwing repo 2014-12-09 11:19:34 -08:00
Kevin Sawicki 48bd330a5e ⬆️ encoding-selector@0.9 2014-12-09 11:17:57 -08:00
Nathan Sobo 6240bc1fc9 ⬆️ fuzzy-finder to fix deprecations 2014-12-09 11:24:35 -07:00
Nathan Sobo 6ccc60342f Remove deprecated Workspace::activePane references 2014-12-09 10:45:54 -07:00
Ben Ogle 03750d0b6c Upgrade notifications to fix activation time 2014-12-08 18:25:27 -08:00
Max Brunsfeld 03e31ad918 Merge pull request #4457 from atom/mb-text-editor-element-methods
Add `TextEditorElement` methods needed to replace deprecated APIs
2014-12-08 17:43:11 -08:00
Kevin Sawicki 610c07870a Prepare 0.155 2014-12-08 17:42:27 -08:00
Max Brunsfeld 5c37d208f5 Don't throw when ::getDefaultCharacterWidth is called while detached 2014-12-08 16:56:46 -08:00
Max Brunsfeld d03cfda6c4 📝 new TextEditorElement methods 2014-12-08 16:38:57 -08:00
Max Brunsfeld 8f02b21d08 Add TextEditorElement::onDidAttach, ::onDidDetach 2014-12-08 16:21:59 -08:00
Max Brunsfeld 953f2c61f7 Add TextEditorElement::getDefaultCharacterWidth 2014-12-08 16:14:26 -08:00
Aleksandr Kalko 67f4d51774 Fixed link error 2014-11-26 09:44:50 +02:00
Aleksandr Kalko 1bf4db15b2 Updated README WIndows installing section, added Choclatey installation file 2014-11-26 09:42:32 +02:00
38 arquivos alterados com 452 adições e 142 exclusões
+17 -8
Ver Arquivo
@@ -17,16 +17,25 @@ Atom will automatically update when a new release is available.
### Windows
Install the [Atom chocolatey package](https://chocolatey.org/packages/Atom).
Download the latest [AtomSetup.exe installer](https://github.com/atom/atom/releases/latest).
1. Install [chocolatey](https://chocolatey.org).
2. Close and reopen your command prompt or PowerShell window.
3. Run `cinst Atom`
4. In the future run `cup Atom` to upgrade to the latest release.
Atom will automatically update when a new release is available.
You can also download a `.zip` file from the [releases page](https://github.com/atom/atom/releases/latest).
The Windows version does not currently automatically update so you will need to
manually upgrade to future releases by re-downloading the `.zip` file.
You can also download an `atom-windows.zip` file from the [releases page](https://github.com/atom/atom/releases/latest).
The `.zip` version will not automatically update.
#### Uninstalling Chocolatey Version
The recommended installation of Atom on Windows used to be using [Chocolatey](https://chocolatey.org/packages/Atom/).
This is no longer recommended now that the Atom Windows installer & auto-updater
exists.
To switch from Chocolatey to the new installer:
* Upgrade to Atom 0.155 or above by running `cup Atom`
* Run `cuninst Atom` to uninstall the Chocolatey version of Atom
* This will not delete any of your installed packages or Atom config files.
* Download the latest [AtomSetup.exe installer](https://github.com/atom/atom/releases/latest).
* Double-click the downloaded file to install Atom
### Debian Linux (Ubuntu)
+1 -1
Ver Arquivo
@@ -6,6 +6,6 @@
"url": "https://github.com/atom/atom.git"
},
"dependencies": {
"atom-package-manager": "0.113.0"
"atom-package-manager": "0.116.0"
}
}
+7 -5
Ver Arquivo
@@ -21,7 +21,9 @@ module.exports = (grunt) ->
mkdir appDir
cp 'atom.sh', path.join(appDir, 'atom.sh')
if process.platform isnt 'win32'
cp 'atom.sh', path.join(appDir, 'atom.sh')
cp 'package.json', path.join(appDir, 'package.json')
packageDirectories = []
@@ -149,10 +151,10 @@ module.exports = (grunt) ->
grunt.file.copy(sourcePath, path.resolve(appDir, '..', subDirectory, filename))
if process.platform is 'win32'
# Set up chocolatey ignore and gui files
fs.writeFileSync path.join(appDir, 'apm', 'node_modules', 'atom-package-manager', 'bin', 'node.exe.ignore'), ''
fs.writeFileSync path.join(appDir, 'node_modules', 'symbols-view', 'vendor', 'ctags-win32.exe.ignore'), ''
fs.writeFileSync path.join(shellAppDir, 'atom.exe.gui'), ''
cp path.join('resources', 'win', 'atom.cmd'), path.join(shellAppDir, 'resources', 'cli', 'atom.cmd')
cp path.join('resources', 'win', 'atom.sh'), path.join(shellAppDir, 'resources', 'cli', 'atom.sh')
cp path.join('resources', 'win', 'atom.js'), path.join(shellAppDir, 'resources', 'cli', 'atom.js')
cp path.join('resources', 'win', 'apm.sh'), path.join(shellAppDir, 'resources', 'cli', 'apm.sh')
dependencies = ['compile', 'generate-license:save', 'generate-module-cache', 'compile-packages-slug']
dependencies.push('copy-info-plist') if process.platform is 'darwin'
+9
Ver Arquivo
@@ -11,6 +11,13 @@ module.exports = (grunt) ->
packageSpecQueue = null
logDeprecations = (label, {stderr}={}) ->
if process.env.JANKY_SHA1 and stderr?.indexOf('Calls to deprecated functions') isnt -1
grunt.log.error(label)
stderr = stderr.replace(/^\[.*\] "/g, '')
stderr = stderr.replace(/source: .*$/g, '')
grunt.log.error(stderr)
getAppPath = ->
contentsDir = grunt.config.get('atom.contentsDir')
switch process.platform
@@ -54,6 +61,7 @@ module.exports = (grunt) ->
fs.unlinkSync(path.join(packagePath, 'ci.log'))
failedPackages.push path.basename(packagePath) if error
logDeprecations("#{path.basename(packagePath)} Specs", results)
callback()
modulesDirectory = path.resolve('node_modules')
@@ -87,6 +95,7 @@ module.exports = (grunt) ->
else
# TODO: Restore concurrency on Windows
packageSpecQueue.concurrency = concurrency
logDeprecations('Core Specs', results)
callback(null, error)
+30 -30
Ver Arquivo
@@ -1,7 +1,7 @@
{
"name": "atom",
"productName": "Atom",
"version": "0.154.0",
"version": "0.159.0",
"description": "A hackable text editor for the 21st Century.",
"main": "./src/browser/main.js",
"repository": {
@@ -32,7 +32,7 @@
"fs-plus": "^2.3.2",
"fstream": "0.1.24",
"fuzzaldrin": "^2.1",
"git-utils": "^2.1.5",
"git-utils": "^2.2",
"grim": "0.12.0",
"guid": "0.0.10",
"jasmine-json": "~0.0",
@@ -53,7 +53,7 @@
"reactionary-atom-fork": "^1.0.0",
"runas": "1.0.1",
"scandal": "1.0.3",
"scoped-property-store": "^0.15.0",
"scoped-property-store": "^0.15.2",
"scrollbar-style": "^1.0.2",
"season": "^1.0.2",
"semver": "2.2.1",
@@ -63,7 +63,7 @@
"temp": "0.7.0",
"text-buffer": "^3.8.2",
"theorist": "^1.0.2",
"underscore-plus": "^1.6.1",
"underscore-plus": "^1.6.3",
"vm-compatibility-layer": "0.1.0"
},
"packageDependencies": {
@@ -73,59 +73,59 @@
"atom-light-ui": "0.36.0",
"base16-tomorrow-dark-theme": "0.22.0",
"base16-tomorrow-light-theme": "0.5.0",
"solarized-dark-syntax": "0.25.0",
"solarized-dark-syntax": "0.27.0",
"solarized-light-syntax": "0.13.0",
"archive-view": "0.40.0",
"autocomplete": "0.34.0",
"autoflow": "0.19.0",
"autoflow": "0.20.0",
"autosave": "0.19.0",
"background-tips": "0.18.0",
"bookmarks": "0.31.0",
"bracket-matcher": "0.64.0",
"command-palette": "0.30.0",
"deprecation-cop": "0.18.0",
"dev-live-reload": "0.35.0",
"encoding-selector": "0.8.0",
"deprecation-cop": "0.20.0",
"dev-live-reload": "0.36.0",
"encoding-selector": "0.12.0",
"exception-reporting": "0.21.0",
"find-and-replace": "0.151.0",
"fuzzy-finder": "0.60.0",
"find-and-replace": "0.152.0",
"fuzzy-finder": "0.62.0",
"git-diff": "0.45.0",
"go-to-line": "0.27.0",
"grammar-selector": "0.37.0",
"image-view": "0.42.0",
"incompatible-packages": "0.10.0",
"keybinding-resolver": "0.20.0",
"grammar-selector": "0.38.0",
"image-view": "0.44.0",
"incompatible-packages": "0.16.0",
"keybinding-resolver": "0.24.0",
"link": "0.28.0",
"markdown-preview": "0.111.0",
"metrics": "0.39.0",
"notifications": "0.11.0",
"markdown-preview": "0.112.0",
"metrics": "0.40.0",
"notifications": "0.18.0",
"open-on-github": "0.31.0",
"package-generator": "0.33.0",
"release-notes": "0.36.0",
"release-notes": "0.39.0",
"settings-view": "0.161.0",
"snippets": "0.57.0",
"spell-check": "0.44.0",
"status-bar": "0.52.0",
"styleguide": "0.30.0",
"symbols-view": "0.68.0",
"tabs": "0.57.0",
"snippets": "0.59.0",
"spell-check": "0.45.0",
"status-bar": "0.53.0",
"styleguide": "0.36.0",
"symbols-view": "0.70.0",
"tabs": "0.58.0",
"timecop": "0.24.0",
"tree-view": "0.136.0",
"tree-view": "0.138.0",
"update-package-dependencies": "0.7.0",
"welcome": "0.21.0",
"whitespace": "0.27.0",
"wrap-guide": "0.24.0",
"wrap-guide": "0.26.0",
"language-c": "0.33.0",
"language-clojure": "0.9.0",
"language-coffee-script": "0.38.1",
"language-css": "0.23.1",
"language-css": "0.24.0",
"language-gfm": "0.55.0",
"language-git": "0.9.0",
"language-go": "0.19.1",
"language-html": "0.26.1",
"language-hyperlink": "0.12.2",
"language-java": "0.13.0",
"language-javascript": "0.47.0",
"language-javascript": "0.51.0",
"language-json": "0.10.0",
"language-less": "0.21.0",
"language-make": "0.12.0",
@@ -142,7 +142,7 @@
"language-source": "0.8.0",
"language-sql": "0.11.0",
"language-text": "0.6.0",
"language-todo": "0.14.0",
"language-todo": "0.15.0",
"language-toml": "0.14.1",
"language-xml": "0.25.0",
"language-yaml": "0.21.0"
+3
Ver Arquivo
@@ -0,0 +1,3 @@
#!/bin/sh
"$0/../../app/apm/node_modules/atom-package-manager/bin/node.exe" "$0/../../app/apm/node_modules/atom-package-manager/lib/cli.js" "$@"
+22
Ver Arquivo
@@ -0,0 +1,22 @@
@echo off
SET EXPECT_OUTPUT=
FOR %%a IN (%*) DO (
IF /I "%%a"=="-f" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="--foreground" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="-h" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="--help" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="-t" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="--test" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="-v" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="--version" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="-w" SET EXPECT_OUTPUT=YES
IF /I "%%a"=="--wait" SET EXPECT_OUTPUT=YES
)
IF "%EXPECT_OUTPUT%"=="YES" (
"%~dp0\..\..\atom.exe" %*
) ELSE (
"%~dp0\..\app\apm\node_modules\atom-package-manager\bin\node.exe" "%~dp0\atom.js" %*
)
+9
Ver Arquivo
@@ -0,0 +1,9 @@
var path = require('path');
var spawn = require('child_process').spawn;
var atomCommandPath = path.resolve(__dirname, '..', '..', 'atom.exe');
var arguments = process.argv.slice(2);
arguments.unshift('--executed-from', process.cwd());
var options = {detached: true, stdio: 'ignore'};
spawn(atomCommandPath, arguments, options);
process.exit(0);
+22
Ver Arquivo
@@ -0,0 +1,22 @@
#!/bin/sh
while getopts ":fhtvw-:" opt; do
case "$opt" in
-)
case "${OPTARG}" in
foreground|help|test|version|wait)
EXPECT_OUTPUT=1
;;
esac
;;
f|h|t|v|w)
EXPECT_OUTPUT=1
;;
esac
done
if [ $EXPECT_OUTPUT ]; then
"$0/../../../atom.exe" "$@"
else
"$0/../../app/apm/node_modules/atom-package-manager/bin/node.exe" "$0/../atom.js" "$@"
fi
+1
Ver Arquivo
@@ -4,6 +4,7 @@ set -e
docker build -t atom-rpm .
docker run \
--rm \
--env JANKY_SHA1="$JANKY_SHA1" \
--env JANKY_BRANCH="$JANKY_BRANCH" \
--env ATOM_ACCESS_TOKEN="$BUILD_ATOM_RPM_ACCESS_TOKEN" \
+42
Ver Arquivo
@@ -0,0 +1,42 @@
BufferedProcess = require '../src/buffered-process'
describe "BufferedProcess", ->
describe "when a bad command is specified", ->
[oldOnError] = []
beforeEach ->
oldOnError = window.onerror
window.onerror = jasmine.createSpy()
afterEach ->
window.onerror = oldOnError
describe "when there is an error handler specified", ->
it "calls the error handler and does not throw an exception", ->
process = new BufferedProcess
command: 'bad-command-nope'
args: ['nothing']
options: {}
errorSpy = jasmine.createSpy().andCallFake (error) -> error.handle()
process.onWillThrowError(errorSpy)
waitsFor -> errorSpy.callCount > 0
runs ->
expect(window.onerror).not.toHaveBeenCalled()
expect(errorSpy).toHaveBeenCalled()
expect(errorSpy.mostRecentCall.args[0].error.message).toContain 'spawn bad-command-nope ENOENT'
describe "when there is not an error handler specified", ->
it "calls the error handler and does not throw an exception", ->
process = new BufferedProcess
command: 'bad-command-nope'
args: ['nothing']
options: {}
waitsFor -> window.onerror.callCount > 0
runs ->
expect(window.onerror).toHaveBeenCalled()
expect(window.onerror.mostRecentCall.args[0]).toContain 'Failed to spawn command `bad-command-nope`'
expect(window.onerror.mostRecentCall.args[4].name).toBe 'BufferedProcessError'
+2 -14
Ver Arquivo
@@ -4,7 +4,6 @@ CSON = require 'season'
fs = require 'fs-plus'
describe "Config", ->
dotAtomPath = path.join(temp.dir, 'dot-atom-dir')
dotAtomPath = null
beforeEach ->
@@ -252,23 +251,12 @@ describe "Config", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.set("foo.ok", 12)
jasmine.snapshotDeprecations()
expect(atom.config.getSettings().foo).toEqual
ok: 12
bar:
baz: 10
describe "when scoped settings are used", ->
it "returns all the scoped settings including all the defaults", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.set("foo.ok", 12)
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: baz: 42)
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: omg: 'omg')
expect(atom.config.getSettings(".source.coffee").foo).toEqual
ok: 12
bar:
baz: 42
omg: 'omg'
jasmine.restoreDeprecationsSnapshot()
describe ".pushAtKeyPath(keyPath, value)", ->
it "pushes the given value to the array at the key path and updates observers", ->
+6
Ver Arquivo
@@ -1085,6 +1085,12 @@ describe "DisplayBuffer", ->
expect(oldProperties).toEqual decorationProperties
expect(newProperties).toEqual type: 'gutter', class: 'two', id: decoration.id
describe "::getDecorations(properties)", ->
it "returns decorations matching the given optional properties", ->
expect(displayBuffer.getDecorations()).toEqual [decoration]
expect(displayBuffer.getDecorations(class: 'two').length).toEqual 0
expect(displayBuffer.getDecorations(class: 'one').length).toEqual 1
describe "::setScrollTop", ->
beforeEach ->
displayBuffer.manageScrollPosition = true
+4
Ver Arquivo
@@ -259,6 +259,10 @@ describe "GitRepository", ->
editor.getBuffer().emitter.emit 'did-change-path'
expect(statusHandler.callCount).toBe 1
it "stops listening to the buffer when the repository is destroyed (regression)", ->
atom.project.getRepositories()[0].destroy()
expect(-> editor.save()).not.toThrow()
describe "when a project is deserialized", ->
[buffer, project2] = []
+3
Ver Arquivo
@@ -25,6 +25,9 @@ module.exports.runSpecSuite = (specSuite, logFile, logErrors=true) ->
log(str)
onComplete: (runner) ->
fs.closeSync(logStream) if logStream?
if process.env.JANKY_SHA1
grim = require 'grim'
grim.logDeprecations() if grim.getDeprecationsLength() > 0
atom.exit(runner.results().failedCount > 0 ? 1 : 0)
else
AtomReporter = require './atom-reporter'
+4
Ver Arquivo
@@ -21,3 +21,7 @@ describe "Panel", ->
panel.show()
expect(panel.isVisible()).toBe true
expect(spy).toHaveBeenCalledWith(true)
panel.destroy()
expect(panel.isVisible()).toBe false
expect(spy).toHaveBeenCalledWith(false)
+5
Ver Arquivo
@@ -105,3 +105,8 @@ describe "StylesElement", ->
document.querySelector('#jasmine-content').appendChild(element)
expect(element.firstChild.sheet.cssRules[0].selectorText).toBe ':host'
it "does not throw exceptions on rules with no selectors", ->
atom.styles.addStyleSheet """
@media screen {font-size: 10px;}
""", context: 'atom-text-editor'
+2 -1
Ver Arquivo
@@ -1908,7 +1908,8 @@ describe "TextEditorComponent", ->
}
""", context: 'atom-text-editor'
nextAnimationFrame()
nextAnimationFrame() # handle stylesheet change event
nextAnimationFrame() # perform requested update
scrollbarCornerNode = componentNode.querySelector('.scrollbar-corner')
expect(verticalScrollbarNode.offsetWidth).toBe 8
+31
Ver Arquivo
@@ -104,6 +104,27 @@ describe "TextEditorElement", ->
scrollbarWidth = verticalScrollbarNode.offsetWidth - verticalScrollbarNode.clientWidth
expect(scrollbarWidth).toEqual(8)
describe "::onDidAttach and ::onDidDetach", ->
it "invokes callbacks when the element is attached and detached", ->
element = new TextEditorElement
attachedCallback = jasmine.createSpy("attachedCallback")
detachedCallback = jasmine.createSpy("detachedCallback")
element.onDidAttach(attachedCallback)
element.onDidDetach(detachedCallback)
jasmine.attachToDOM(element)
expect(attachedCallback).toHaveBeenCalled()
expect(detachedCallback).not.toHaveBeenCalled()
attachedCallback.reset()
element.remove()
expect(attachedCallback).not.toHaveBeenCalled()
expect(detachedCallback).toHaveBeenCalled()
describe "::setUpdatedSynchronously", ->
it "controls whether the text editor is updated synchronously", ->
spyOn(window, 'requestAnimationFrame').andCallFake (fn) -> fn()
@@ -124,3 +145,13 @@ describe "TextEditorElement", ->
element.getModel().setText("goodbye")
expect(window.requestAnimationFrame).not.toHaveBeenCalled()
expect(element.shadowRoot.textContent).toContain "goodbye"
describe "::getDefaultCharacterWidth", ->
it "returns null before the element is attached", ->
element = new TextEditorElement
expect(element.getDefaultCharacterWidth()).toBeNull()
it "returns the width of a character in the root scope", ->
element = new TextEditorElement
jasmine.attachToDOM(element)
expect(element.getDefaultCharacterWidth()).toBeGreaterThan(0)
+12 -6
Ver Arquivo
@@ -192,12 +192,18 @@ describe "TextEditor", ->
expect(editor.getCursorBufferPosition()).toEqual [1, 1]
it "emits an event with the old position, new position, and the cursor that moved", ->
editor.onDidChangeCursorPosition positionChangedHandler = jasmine.createSpy()
cursorCallback = jasmine.createSpy('cursor-changed-position')
editorCallback = jasmine.createSpy('editor-changed-cursor-position')
editor.getLastCursor().onDidChangePosition(cursorCallback)
editor.onDidChangeCursorPosition(editorCallback)
editor.setCursorBufferPosition([2, 4])
expect(positionChangedHandler).toHaveBeenCalled()
eventObject = positionChangedHandler.mostRecentCall.args[0]
expect(editorCallback).toHaveBeenCalled()
expect(cursorCallback).toHaveBeenCalled()
eventObject = editorCallback.mostRecentCall.args[0]
expect(cursorCallback.mostRecentCall.args[0]).toEqual(eventObject)
expect(eventObject.oldBufferPosition).toEqual [0, 0]
expect(eventObject.oldScreenPosition).toEqual [0, 0]
@@ -3414,11 +3420,11 @@ describe "TextEditor", ->
describe "when the cursor is before whitespace", ->
it "retains the whitespace following the cursor on the new line", ->
editor.setText(" var sort = function() {}")
editor.setCursorScreenPosition([0, 23])
editor.setCursorScreenPosition([0, 12])
editor.insertNewline()
expect(buffer.lineForRow(0)).toBe ' var sort = function()'
expect(buffer.lineForRow(1)).toBe ' {}'
expect(buffer.lineForRow(0)).toBe ' var sort ='
expect(buffer.lineForRow(1)).toBe ' function() {}'
expect(editor.getCursorScreenPosition()).toEqual [1, 2]
describe "when inserted text matches a decrease indent pattern", ->
+37
Ver Arquivo
@@ -3,6 +3,7 @@ Q = require 'q'
path = require 'path'
temp = require 'temp'
TextEditorView = require '../src/text-editor-view'
Pane = require '../src/pane'
PaneView = require '../src/pane-view'
Workspace = require '../src/workspace'
@@ -294,3 +295,39 @@ describe "WorkspaceView", ->
modalContainer = workspaceElement.querySelector('atom-panel-container.modal')
expect(modalContainer.parentNode).toBe workspaceElement
describe "::saveActivePaneItem()", ->
describe "when there is an error", ->
it "emits a warning notification when the file cannot be saved", ->
spyOn(Pane::, 'saveActiveItem').andCallFake ->
throw new Error("'/some/file' is a directory")
atom.notifications.onDidAddNotification addedSpy = jasmine.createSpy()
atom.workspace.saveActivePaneItem()
expect(addedSpy).toHaveBeenCalled()
expect(addedSpy.mostRecentCall.args[0].getType()).toBe 'warning'
it "emits a warning notification when the directory cannot be written to", ->
spyOn(Pane::, 'saveActiveItem').andCallFake ->
throw new Error("ENOTDIR, not a directory '/Some/dir/and-a-file.js'")
atom.notifications.onDidAddNotification addedSpy = jasmine.createSpy()
atom.workspace.saveActivePaneItem()
expect(addedSpy).toHaveBeenCalled()
expect(addedSpy.mostRecentCall.args[0].getType()).toBe 'warning'
it "emits a warning notification when the user does not have permission", ->
spyOn(Pane::, 'saveActiveItem').andCallFake ->
throw new Error("EACCES, permission denied '/Some/dir/and-a-file.js'")
atom.notifications.onDidAddNotification addedSpy = jasmine.createSpy()
atom.workspace.saveActivePaneItem()
expect(addedSpy).toHaveBeenCalled()
expect(addedSpy.mostRecentCall.args[0].getType()).toBe 'warning'
it "emits a warning notification when the file cannot be saved", ->
spyOn(Pane::, 'saveActiveItem').andCallFake ->
throw new Error("no one knows")
save = -> atom.workspace.saveActivePaneItem()
expect(save).toThrow()
-6
Ver Arquivo
@@ -8,8 +8,6 @@ class AutoUpdater
setFeedUrl: (@updateUrl) ->
quitAndInstall: ->
console.log 'restarting new atom.exe'
if SquirrelUpdate.existsSync()
SquirrelUpdate.restartAtom()
else
@@ -46,7 +44,6 @@ class AutoUpdater
@downloadUpdate (error, update) =>
if error?
console.log "Failed to download: #{error.message} - #{error.code} - #{error.stdout}"
@emit 'update-not-available'
return
@@ -56,12 +53,9 @@ class AutoUpdater
@installUpdate (error) =>
if error?
console.log "Failed to update: #{error.message} - #{error.code} - #{error.stdout}"
@emit 'update-not-available'
return
console.log "Updated to #{update.version}"
@emit 'update-available'
@emit 'update-downloaded', {}, update.releaseNotes, update.version, new Date(), 'https://atom.io', => @quitAndInstall()
+17 -12
Ver Arquivo
@@ -3,7 +3,8 @@ ChildProcess = require 'child_process'
fs = require 'fs-plus'
path = require 'path'
rootAtomFolder = path.resolve(process.execPath, '..', '..')
appFolder = path.resolve(process.execPath, '..')
rootAtomFolder = path.resolve(appFolder, '..')
binFolder = path.join(rootAtomFolder, 'bin')
updateDotExe = path.join(rootAtomFolder, 'Update.exe')
exeName = path.basename(process.execPath)
@@ -111,22 +112,26 @@ uninstallContextMenu = (callback) ->
addCommandsToPath = (callback) ->
installCommands = (callback) ->
atomCommandPath = path.join(binFolder, 'atom.cmd')
relativeExePath = path.relative(binFolder, process.execPath)
atomCommand = """
@echo off
"%~dp0\\#{relativeExePath}" %*
"""
relativeAtomPath = path.relative(binFolder, path.join(appFolder, 'resources', 'cli', 'atom.cmd'))
atomCommand = "@echo off\r\n\"%~dp0\\#{relativeAtomPath}\" %*"
atomShCommandPath = path.join(binFolder, 'atom')
relativeAtomShPath = path.relative(binFolder, path.join(appFolder, 'resources', 'cli', 'atom.sh'))
atomShCommand = "#!/bin/sh\r\n\"$0/../#{relativeAtomShPath.replace(/\\/g, '/')}\" \"$@\""
apmCommandPath = path.join(binFolder, 'apm.cmd')
relativeApmPath = path.relative(binFolder, path.join(process.resourcesPath, 'app', 'apm', 'node_modules', 'atom-package-manager', 'bin', 'apm.cmd'))
apmCommand = """
@echo off
"%~dp0\\#{relativeApmPath}" %*
"""
apmCommand = "@echo off\r\n\"%~dp0\\#{relativeApmPath}\" %*"
apmShCommandPath = path.join(binFolder, 'apm')
relativeApmShPath = path.relative(binFolder, path.join(appFolder, 'resources', 'cli', 'apm.sh'))
apmShCommand = "#!/bin/sh\r\n\"$0/../#{relativeApmShPath.replace(/\\/g, '/')}\" \"$@\""
fs.writeFile atomCommandPath, atomCommand, ->
fs.writeFile apmCommandPath, apmCommand, ->
callback()
fs.writeFile atomShCommandPath, atomShCommand, ->
fs.writeFile apmCommandPath, apmCommand, ->
fs.writeFile apmShCommandPath, apmShCommand, ->
callback()
addBinToPath = (pathSegments, callback) ->
pathSegments.push(binFolder)
+41
Ver Arquivo
@@ -1,5 +1,6 @@
_ = require 'underscore-plus'
ChildProcess = require 'child_process'
{Emitter} = require 'event-kit'
# Extended: A wrapper which provides standard error/output line buffering for
# Node's ChildProcess.
@@ -17,6 +18,10 @@ ChildProcess = require 'child_process'
# ```
module.exports =
class BufferedProcess
###
Section: Construction
###
# Public: Runs the given command by spawning a new child process.
#
# * `options` An {Object} with the following keys:
@@ -39,6 +44,7 @@ class BufferedProcess
# * `exit` The callback {Function} which receives a single argument
# containing the exit status (optional).
constructor: ({command, args, options, stdout, stderr, exit}={}) ->
@emitter = new Emitter
options ?= {}
# Related to joyent/node#2318
if process.platform is "win32"
@@ -94,6 +100,41 @@ class BufferedProcess
processExited = true
triggerExitCallback()
@process.on 'error', (error) =>
handled = false
handle = -> handled = true
@emitter.emit 'will-throw-error', {error, handle}
if error.code is 'ENOENT' and error.syscall.indexOf('spawn') is 0
error = new Error("Failed to spawn command `#{command}`. Make sure `#{command}` is installed and on your PATH", error.path)
error.name = 'BufferedProcessError'
throw error unless handled
###
Section: Event Subscription
###
# Public: Will call your callback when an error will be raised by the process.
# Usually this is due to the command not being available or not on the PATH.
# You can call `handle()` on the object passed to your callback to indicate
# that you have handled this error.
#
# * `callback` {Function} callback
# * `errorObject` {Object}
# * `error` {Object} the error object
# * `handle` {Function} call this to indicate you have handled the error.
# The error will not be thrown if this function is called.
#
# Returns a {Disposable}
onWillThrowError: (callback) ->
@emitter.on 'will-throw-error', callback
###
Section: Helper Methods
###
# Helper method to pass data line by line.
#
# * `stream` The Stream to read from.
+10 -17
Ver Arquivo
@@ -6,7 +6,7 @@ CSON = require 'season'
path = require 'path'
async = require 'async'
pathWatcher = require 'pathwatcher'
{deprecate} = require 'grim'
Grim = require 'grim'
ScopedPropertyStore = require 'scoped-property-store'
ScopeDescriptor = require './scope-descriptor'
@@ -362,7 +362,7 @@ class Config
message = ""
message = "`callNow` was set to false. Use ::onDidChange instead. Note that ::onDidChange calls back with different arguments." if options.callNow == false
deprecate "Config::observe no longer supports options; see https://atom.io/docs/api/latest/Config. #{message}"
Grim.deprecate "Config::observe no longer supports options; see https://atom.io/docs/api/latest/Config. #{message}"
else
console.error 'An unsupported form of Config::observe is being used. See https://atom.io/docs/api/latest/Config for details'
return
@@ -604,18 +604,11 @@ class Config
schema = schema.properties[key]
schema
# Extended: Returns a new {Object} containing all of the global settings and
# Deprecated: Returns a new {Object} containing all of the global settings and
# defaults. Returns the scoped settings when a `scopeSelector` is specified.
#
# * `scopeSelector` (optional) {String}. eg. '.source.ruby'
getSettings: (scopeSelector) ->
settings = _.deepExtend(@settings, @defaultSettings)
if scopeSelector?
scopedSettings = @scopedSettingsStore.propertiesForSelector(scopeSelector)
settings = _.deepExtend(scopedSettings, settings)
settings
getSettings: ->
Grim.deprecate "Use ::get(keyPath) instead"
_.deepExtend({}, @settings, @defaultSettings)
# Extended: Get the {String} path to the config file being used.
getUserConfigPath: ->
@@ -626,25 +619,25 @@ class Config
###
getInt: (keyPath) ->
deprecate '''Config::getInt is no longer necessary. Use ::get instead.
Grim.deprecate '''Config::getInt is no longer necessary. Use ::get instead.
Make sure the config option you are accessing has specified an `integer`
schema. See the schema section of
https://atom.io/docs/api/latest/Config for more info.'''
parseInt(@get(keyPath))
getPositiveInt: (keyPath, defaultValue=0) ->
deprecate '''Config::getPositiveInt is no longer necessary. Use ::get instead.
Grim.deprecate '''Config::getPositiveInt is no longer necessary. Use ::get instead.
Make sure the config option you are accessing has specified an `integer`
schema with `minimum: 1`. See the schema section of
https://atom.io/docs/api/latest/Config for more info.'''
Math.max(@getInt(keyPath), 0) or defaultValue
toggle: (keyPath) ->
deprecate 'Config::toggle is no longer supported. Please remove from your code.'
Grim.deprecate 'Config::toggle is no longer supported. Please remove from your code.'
@set(keyPath, !@get(keyPath))
unobserve: (keyPath) ->
deprecate 'Config::unobserve no longer does anything. Call `.dispose()` on the object returned by Config::observe instead.'
Grim.deprecate 'Config::unobserve no longer does anything. Call `.dispose()` on the object returned by Config::observe instead.'
###
Section: Internal methods used by core
+4 -4
Ver Arquivo
@@ -45,7 +45,7 @@ class Cursor extends Model
cursor: this
@emit 'moved', movedEvent
@emitter.emit 'did-change-position'
@emitter.emit 'did-change-position', movedEvent
@editor.cursorMoved(movedEvent)
@marker.onDidDestroy =>
@destroyed = true
@@ -665,7 +665,7 @@ class Cursor extends Model
autoscroll: (options) ->
@editor.scrollToScreenRange(@getScreenRange(), options)
getBeginningOfNextParagraphBufferPosition: (editor) ->
getBeginningOfNextParagraphBufferPosition: ->
start = @getBufferPosition()
eof = @editor.getEofBufferPosition()
scanRange = [start, eof]
@@ -679,8 +679,8 @@ class Cursor extends Model
stop()
@editor.screenPositionForBufferPosition(position)
getBeginningOfPreviousParagraphBufferPosition: (editor) ->
start = @editor.getCursorBufferPosition()
getBeginningOfPreviousParagraphBufferPosition: ->
start = @getBufferPosition()
{row, column} = start
scanRange = [[row-1, column], [0,0]]
+14 -9
Ver Arquivo
@@ -883,23 +883,28 @@ class DisplayBuffer extends Model
decorationForId: (id) ->
@decorationsById[id]
getDecorations: ->
getDecorations: (propertyFilter) ->
allDecorations = []
for markerId, decorations of @decorationsByMarkerId
allDecorations = allDecorations.concat(decorations) if decorations?
if propertyFilter?
allDecorations = allDecorations.filter (decoration) ->
for key, value of propertyFilter
return false unless decoration.properties[key] is value
true
allDecorations
getLineDecorations: ->
@getDecorations().filter (decoration) -> decoration.isType('line')
getLineDecorations: (propertyFilter) ->
@getDecorations(propertyFilter).filter (decoration) -> decoration.isType('line')
getGutterDecorations: ->
@getDecorations().filter (decoration) -> decoration.isType('gutter')
getGutterDecorations: (propertyFilter) ->
@getDecorations(propertyFilter).filter (decoration) -> decoration.isType('gutter')
getHighlightDecorations: ->
@getDecorations().filter (decoration) -> decoration.isType('highlight')
getHighlightDecorations: (propertyFilter) ->
@getDecorations(propertyFilter).filter (decoration) -> decoration.isType('highlight')
getOverlayDecorations: ->
@getDecorations().filter (decoration) -> decoration.isType('overlay')
getOverlayDecorations: (propertyFilter) ->
@getDecorations(propertyFilter).filter (decoration) -> decoration.isType('overlay')
decorationsForScreenRowRange: (startScreenRow, endScreenRow) ->
decorationsByMarkerId = {}
+2
Ver Arquivo
@@ -412,6 +412,8 @@ class GitRepository
bufferSubscriptions.add buffer.onDidDestroy =>
bufferSubscriptions.dispose()
@subscriptions.remove(bufferSubscriptions)
@subscriptions.add(bufferSubscriptions)
return
# Subscribes to editor view event.
checkoutHeadForEditor: (editor) ->
+1 -1
Ver Arquivo
@@ -156,7 +156,7 @@ class Package
catch e
console.warn "Failed to activate package named '#{@name}'", e.stack
@activationDeferred.resolve()
@activationDeferred?.resolve()
activateConfig: ->
return if @configActivated
+5 -3
Ver Arquivo
@@ -1,5 +1,6 @@
{CompositeDisposable} = require 'event-kit'
{callAttachHooks} = require './space-pen-extensions'
Panel = require './panel'
class PanelElement extends HTMLElement
createdCallback: ->
@@ -13,14 +14,15 @@ class PanelElement extends HTMLElement
@subscriptions.add @model.onDidDestroy(@destroyed.bind(this))
this
getModel: -> @model
getModel: ->
@model ?= new Panel
getItemView: ->
atom.views.getView(@model.getItem())
atom.views.getView(@getModel().getItem())
attachedCallback: ->
callAttachHooks(@getItemView()) # for backward compatibility with SpacePen views
@visibleChanged(@model.isVisible())
@visibleChanged(@getModel().isVisible())
visibleChanged: (visible) ->
if visible
+2 -1
Ver Arquivo
@@ -14,13 +14,14 @@ class Panel
Section: Construction and Destruction
###
constructor: ({@item, @visible, @priority, @className}) ->
constructor: ({@item, @visible, @priority, @className}={}) ->
@emitter = new Emitter
@visible ?= true
@priority ?= 100
# Public: Destroy and remove this panel from the UI.
destroy: ->
@hide()
@emitter.emit 'did-destroy', this
@emitter.dispose()
+1
Ver Arquivo
@@ -92,6 +92,7 @@ class StylesElement extends HTMLElement
upgradedSelectors = []
for rule in styleElement.sheet.cssRules
continue unless rule.selectorText?
continue if /\:host/.test(rule.selectorText)
inputSelector = rule.selectorText
+8 -2
Ver Arquivo
@@ -664,8 +664,14 @@ TextEditorComponent = React.createClass
onStylesheetsChanged: (styleElement) ->
return unless @performedInitialMeasurement
return unless atom.themes.isInitialLoadComplete()
@refreshScrollbars() if not styleElement.sheet? or @containsScrollbarSelector(styleElement.sheet)
@handleStylingChange()
# This delay prevents the styling from going haywire when stylesheets are
# reloaded in dev mode. It seems like a workaround for a browser bug, but
# not totally sure.
requestAnimationFrame =>
if @isMounted()
@refreshScrollbars() if not styleElement.sheet? or @containsScrollbarSelector(styleElement.sheet)
@handleStylingChange()
onAllThemesLoaded: ->
@refreshScrollbars()
+25
Ver Arquivo
@@ -1,3 +1,4 @@
{Emitter} = require 'event-kit'
{View, $, callRemoveHooks} = require 'space-pen'
React = require 'react-atom-fork'
Path = require 'path'
@@ -13,10 +14,12 @@ class TextEditorElement extends HTMLElement
model: null
componentDescriptor: null
component: null
attached: false
lineOverdrawMargin: null
focusOnAttach: false
createdCallback: ->
@emitter = new Emitter
@initializeContent()
@createSpacePenShim()
@addEventListener 'focus', @focused.bind(this)
@@ -61,6 +64,10 @@ class TextEditorElement extends HTMLElement
@mountComponent() unless @component?.isMounted()
@component.checkForVisibilityChange()
@focus() if @focusOnAttach
@emitter.emit("did-attach")
detachedCallback: ->
@emitter.emit("did-detach")
initialize: (model) ->
@setModel(model)
@@ -160,6 +167,24 @@ class TextEditorElement extends HTMLElement
isUpdatedSynchronously: -> @updatedSynchronously
# Extended: get the width of a character of text displayed in this element.
#
# Returns a {Number} of pixels.
getDefaultCharacterWidth: ->
@getModel().getDefaultCharWidth()
# Extended: call the given `callback` when the editor is attached to the DOM.
#
# * `callback` {Function}
onDidAttach: (callback) ->
@emitter.on("did-attach", callback)
# Extended: call the given `callback` when the editor is detached from the DOM.
#
# * `callback` {Function}
onDidDetach: (callback) ->
@emitter.on("did-detach", callback)
stopEventPropagation = (commandListeners) ->
newCommandListeners = {}
for commandName, commandListener of commandListeners
+25 -10
Ver Arquivo
@@ -1310,33 +1310,48 @@ class TextEditor extends Model
# Extended: Get all decorations.
#
# * `propertyFilter` (optional) An {Object} containing key value pairs that
# the returned decorations' properties must match.
#
# Returns an {Array} of {Decoration}s.
getDecorations: ->
@displayBuffer.getDecorations()
getDecorations: (propertyFilter) ->
@displayBuffer.getDecorations(propertyFilter)
# Extended: Get all decorations of type 'line'.
#
# * `propertyFilter` (optional) An {Object} containing key value pairs that
# the returned decorations' properties must match.
#
# Returns an {Array} of {Decoration}s.
getLineDecorations: ->
@displayBuffer.getLineDecorations()
getLineDecorations: (propertyFilter) ->
@displayBuffer.getLineDecorations(propertyFilter)
# Extended: Get all decorations of type 'gutter'.
#
# * `propertyFilter` (optional) An {Object} containing key value pairs that
# the returned decorations' properties must match.
#
# Returns an {Array} of {Decoration}s.
getGutterDecorations: ->
@displayBuffer.getGutterDecorations()
getGutterDecorations: (propertyFilter) ->
@displayBuffer.getGutterDecorations(propertyFilter)
# Extended: Get all decorations of type 'highlight'.
#
# * `propertyFilter` (optional) An {Object} containing key value pairs that
# the returned decorations' properties must match.
#
# Returns an {Array} of {Decoration}s.
getHighlightDecorations: ->
@displayBuffer.getHighlightDecorations()
getHighlightDecorations: (propertyFilter) ->
@displayBuffer.getHighlightDecorations(propertyFilter)
# Extended: Get all decorations of type 'overlay'.
#
# * `propertyFilter` (optional) An {Object} containing key value pairs that
# the returned decorations' properties must match.
#
# Returns an {Array} of {Decoration}s.
getOverlayDecorations: ->
@displayBuffer.getOverlayDecorations()
getOverlayDecorations: (propertyFilter) ->
@displayBuffer.getOverlayDecorations(propertyFilter)
decorationForId: (id) ->
@displayBuffer.decorationForId(id)
+6 -2
Ver Arquivo
@@ -112,6 +112,10 @@ class WorkspaceElement extends HTMLElement
focusPaneViewOnRight: -> @paneContainer.focusPaneViewOnRight()
runPackageSpecs: ->
[projectPath] = atom.project.getPaths()
ipc.send('run-package-specs', path.join(projectPath, 'spec')) if projectPath
atom.commands.add 'atom-workspace',
'window:increase-font-size': -> @getModel().increaseFontSize()
'window:decrease-font-size': -> @getModel().decreaseFontSize()
@@ -141,7 +145,7 @@ atom.commands.add 'atom-workspace',
'application:open-your-snippets': -> ipc.send('command', 'application:open-your-snippets')
'application:open-your-stylesheet': -> ipc.send('command', 'application:open-your-stylesheet')
'application:open-license': -> @getModel().openLicense()
'window:run-package-specs': -> ipc.send('run-package-specs', path.join(atom.project.getPath(), 'spec'))
'window:run-package-specs': -> @runPackageSpecs()
'window:focus-next-pane': -> @getModel().activateNextPane()
'window:focus-previous-pane': -> @getModel().activatePreviousPane()
'window:focus-pane-above': -> @focusPaneViewAbove()
@@ -150,7 +154,7 @@ atom.commands.add 'atom-workspace',
'window:focus-pane-on-right': -> @focusPaneViewOnRight()
'window:save-all': -> @getModel().saveAll()
'window:toggle-invisibles': -> atom.config.toggle("editor.showInvisibles")
'window:log-deprecation-warnings': -> Grim.logDeprecationWarnings()
'window:log-deprecation-warnings': -> Grim.logDeprecations()
'window:toggle-auto-indent': -> atom.config.toggle("editor.autoIndent")
'pane:reopen-closed-item': -> @getModel().reopenItem()
'core:close': -> @getModel().destroyActivePaneItemOrEmptyPane()
+21 -9
Ver Arquivo
@@ -423,14 +423,14 @@ class Workspace extends Model
uri = atom.project.resolve(uri)
item = @activePane.itemForUri(uri)
item = @getActivePane().itemForUri(uri)
if uri
item ?= opener(uri, options) for opener in @getOpeners() when !item
item ?= atom.project.openSync(uri, {initialLine, initialColumn})
@activePane.activateItem(item)
@getActivePane().activateItem(item)
@itemOpened(item)
@activePane.activate() if activatePane
@getActivePane().activate() if activatePane
item
openUriInPane: (uri, pane, options={}) ->
@@ -459,8 +459,6 @@ class Workspace extends Model
@emit "uri-opened"
@emitter.emit 'did-open', {uri, pane, item, index}
item
.catch (error) ->
console.error(error.stack ? error)
# Public: Asynchronously reopens the last-closed item's URI if it hasn't already been
# reopened.
@@ -557,7 +555,7 @@ class Workspace extends Model
# {::saveActivePaneItemAs} # will be called instead. This method does nothing
# if the active item does not implement a `.save` method.
saveActivePaneItem: ->
@activePane?.saveActiveItem()
@saveActivePaneItemAndReportErrors('saveActiveItem')
# Prompt the user for a path and save the active pane item to it.
#
@@ -565,14 +563,28 @@ class Workspace extends Model
# `.saveAs` on the item with the selected path. This method does nothing if
# the active item does not implement a `.saveAs` method.
saveActivePaneItemAs: ->
@activePane?.saveActiveItemAs()
@saveActivePaneItemAndReportErrors('saveActiveItemAs')
saveActivePaneItemAndReportErrors: (method) ->
try
@getActivePane()[method]()
catch error
if error.message.endsWith('is a directory')
atom.notifications.addWarning("Unable to save file: #{error.message}")
else if error.message.startsWith('EACCES,')
atom.notifications.addWarning("Unable to save file: #{error.message.replace('EACCES, ', '')}")
else if errorMatch = /ENOTDIR, not a directory '([^']+)'/.exec(error.message)
fileName = errorMatch[1]
atom.notifications.addWarning("Unable to save file: A directory in the path '#{fileName}' could not be written to")
else
throw error
# Destroy (close) the active pane item.
#
# Removes the active pane item and calls the `.destroy` method on it if one is
# defined.
destroyActivePaneItem: ->
@activePane?.destroyActiveItem()
@getActivePane().destroyActiveItem()
###
Section: Panes
@@ -616,7 +628,7 @@ class Workspace extends Model
# Destroy (close) the active pane.
destroyActivePane: ->
@activePane?.destroy()
@getActivePane()?.destroy()
# Destroy the active pane item or the active pane if it is empty.
destroyActivePaneItemOrEmptyPane: ->
+1 -1
Ver Arquivo
@@ -82,4 +82,4 @@
// Other
@font-family: 'Lucida Grande', 'Segoe UI', sans-serif;
@font-family: 'Lucida Grande', 'Segoe UI', Ubuntu, Cantarell, sans-serif;