Comparar commits

...

155 Commits

Autor SHA1 Mensagem Data
Kevin Sawicki 1800438a77 Upgrade to spell-check@0.28.0 2014-03-06 15:04:47 -08:00
Kevin Sawicki 1eda9a839a Upgrade to first-mate 1.4 2014-03-06 14:40:31 -08:00
Kevin Sawicki e3cc400ac2 Upgrade to language-java@0.9.0 2014-03-06 14:37:55 -08:00
Kevin Sawicki 750b57859a Upgrade apm for theme convert fix 2014-03-06 14:27:24 -08:00
Kevin Sawicki 7ba520fea1 Upgrade to language-javascript@0.16.0 2014-03-06 14:26:28 -08:00
Corey Johnson 01851523a0 Upgrade to text-buffer@1.4.0 2014-03-06 14:13:06 -08:00
Corey Johnson 0f98a72876 Merge pull request #1717 from atom/cj-fix-updater-bug
Fix updater bug
2014-03-06 11:24:56 -08:00
Corey Johnson 1dd59204e9 Only released versions should check for updates
Fixes atom/release-notes#6
2014-03-06 10:51:47 -08:00
Kevin Sawicki decae725a6 Upgrade to bracket-matcher@0.25.0 2014-03-06 10:44:21 -08:00
Kevin Sawicki 6c92d45ff3 Upgrade to first-mate 1.3 2014-03-06 10:34:57 -08:00
Corey Johnson 272dd4a076 Don't trigger window:update-available on new windows
This was causing people to see `undefined` release notes. In the 
future we can store the release notes, but since anything related to
updates and the browser process takes a lot of time to fix I'm holding
off on that improvement.
2014-03-06 10:25:12 -08:00
Corey Johnson 626ebe380e Use proper variable name 2014-03-06 10:14:02 -08:00
Kevin Sawicki f86ce48d65 Upgrade to grammar-selector@0.23.0 2014-03-06 10:12:58 -08:00
Kevin Sawicki ef92cca9db Upgrade to first-mate 1.2.1 2014-03-06 10:03:26 -08:00
Corey Johnson aa71810bfb Merge pull request #1716 from atom/cj-package-naming-doc
Tell people to avoid using the atom- prefix
2014-03-06 09:41:04 -08:00
Kevin Sawicki 22c47ac648 Prepare 0.69.0 release 2014-03-06 09:41:01 -08:00
Kevin Sawicki e592528937 Upgrade to snippets@0.35.0 2014-03-06 09:06:59 -08:00
Corey Johnson 1fdb49f314 Avoid using the atom- prefix 2014-03-06 08:50:18 -08:00
Nathan Sobo 690bbbd14c 💄 Fix indentation level of the last describe in editor-spec
I think I screwed it up in the last commit
2014-03-05 21:34:31 -07:00
Nathan Sobo 9c9bb2f192 💄 Flatten the structure of editor-spec
Previously there were 2 top-level describes:

"with an initial line option"
"with default options"

The default options describe contained almost all the specs, so this
commit just creates the editor again in a single spec about the
initialLine option and peels off a layer.
2014-03-05 21:32:11 -07:00
Nathan Sobo 23a40fe051 💄 Move specs for Editor::reloadGrammar to editor-spec 2014-03-05 21:23:39 -07:00
Kevin Sawicki 5d9cd662fc Upgrade to autocomplete@0.27.0 2014-03-05 17:59:25 -08:00
Kevin Sawicki 6c01589d3b Upgrade to language-css@0.12.0 2014-03-05 17:49:26 -08:00
probablycorey 820dde8ad2 Upgrade to image-view@0.29.0 2014-03-05 17:47:43 -08:00
Kevin Sawicki 3de4d63f44 Upgrade to language-python@0.12.0 2014-03-05 17:44:54 -08:00
Kevin Sawicki e1df82e0c3 Upgrade to language-ruby@0.15.0 2014-03-05 17:41:31 -08:00
Kevin Sawicki c1985b4a10 Upgrade to markdown-preview@0.47.0 2014-03-05 17:40:04 -08:00
Kevin Sawicki 1ca9ce4db3 Upgrade to markdown-preview@0.46.0 2014-03-05 17:30:14 -08:00
Kevin Sawicki 636705bd70 Upgrade apm for template tweaks 2014-03-05 17:12:55 -08:00
Kevin Sawicki 153dcd8ad3 Upgrade to snippets@0.34.0 2014-03-05 17:10:37 -08:00
Kevin Sawicki f2c2fe11b4 Upgrade to language-shellscript@0.8.0 2014-03-05 17:07:03 -08:00
Kevin Sawicki 7a2c4fa5cc Upgrade to markdown-preview@0.45.0 2014-03-05 17:03:01 -08:00
Kevin Sawicki 923816ca8e Upgrade to language-objective-c@0.10.0 2014-03-05 16:57:14 -08:00
Kevin Sawicki 23d0b7b89e Upgrade to bracket-matcher@0.24.0 2014-03-05 16:56:41 -08:00
Kevin Sawicki a6b35f3a22 Upgrade to spell-check@0.27.0 2014-03-05 16:42:05 -08:00
Kevin Sawicki 87fb39c8a5 Upgrade to language-php@0.10.0 2014-03-05 16:28:24 -08:00
Kevin Sawicki 4d188a79fb Merge pull request #1706 from atom/ks-first-mate-1-point-2
Upgrade to first-mate@1.2
2014-03-05 16:18:26 -08:00
Kevin Sawicki a02b807dad Upgrade to first-mate@1.2 2014-03-05 16:04:54 -08:00
Kevin Sawicki e0fa9d0213 Merge pull request #1697 from atom/ks-serialize-project
Serialize project
2014-03-05 15:18:20 -08:00
Kevin Sawicki 35ad8abf4c Add expect for project state 2014-03-05 15:06:19 -08:00
Kevin Sawicki 372ca374cc Serialize project 2014-03-05 15:06:19 -08:00
Corey Johnson 75b6e94be1 Merge pull request #1699 from atom/cj-convert-keystrokes-using-shift
Converts keystrokes with alpha chars using shift
2014-03-05 15:00:42 -08:00
Kevin Sawicki f912d0ef88 Upgrade to update-package-dependencies@0.6.0 2014-03-05 10:39:53 -08:00
probablycorey 1bf8a01d0b Upgrade to whitespace@0.18.0 2014-03-05 10:26:16 -08:00
Nathan Sobo 8b093122ac Add Workspace to exported class list 2014-03-05 09:00:39 -07:00
Nathan Sobo bc14ad5b15 Fix broken docs links 2014-03-05 08:53:38 -07:00
Cheng Zhao 9b04578d3e Merge pull request #1701 from atom/atom-shell-v0.10.5
Upgrade to atom-shell@0.10.5
2014-03-05 14:23:08 +00:00
Cheng Zhao 6654d32229 Upgrade to atom-shell@0.10.5 2014-03-05 22:14:25 +08:00
Ben Ogle 7c2c9448a3 Upgrade find-and-replace@0.89.1 2014-03-04 18:53:26 -08:00
Kevin Sawicki 6531128647 📝 Add missing h 2014-03-04 18:25:31 -08:00
Kevin Sawicki fd1b895ff9 Prepare 0.68.0 release 2014-03-04 18:07:28 -08:00
probablycorey f4e88bbcc0 Make sure shift is not double added 2014-03-04 18:00:00 -08:00
Kevin Sawicki 7993f98166 Merge pull request #1700 from atom/ks-single-apm
Remove apm from node_modules
2014-03-04 17:57:08 -08:00
Kevin Sawicki e11b775a31 Upgrade to settings-view@0.89.0 2014-03-04 17:51:37 -08:00
Kevin Sawicki b999494154 Upgrade to package-generator@0.30.0 2014-03-04 17:50:46 -08:00
Kevin Sawicki 6a7ed1a948 Upgrade to update-package-dependencies@0.5.0 2014-03-04 17:49:57 -08:00
probablycorey d0889cca31 Normalize keystrokes to use shift and the uppercase letter
`cmd-shift-l`, `cmd-L` and `cmd-shift-L` all normalize to `cmd-shift-L`
2014-03-04 17:42:32 -08:00
probablycorey 8b673c7adf Refer to char instead of chars 2014-03-04 17:34:17 -08:00
Kevin Sawicki f1b0390b9b Remove apm from node_modules 2014-03-04 17:26:52 -08:00
Kevin Sawicki b43d767a26 Upgrade apm for node being on PATH during install 2014-03-04 17:22:47 -08:00
Nathan Sobo bd4f642045 Merge pull request #1698 from atom/ns-fix-soft-wraps-with-hard-tabs
Fix position translation bug for wrapped lines with hard tabs
2014-03-05 03:16:06 +02:00
Ben Ogle 3bdfc7d785 Upgrade to find-and-replace@0.89.0 2014-03-04 17:04:52 -08:00
probablycorey 4aa73968f0 Converts keystrokes with alpha chars using shift
e.g. cmd-shift-l would be converted to cmd-L
2014-03-04 17:04:06 -08:00
Nathan Sobo 06bc09951d Fix position translation bug for wrapped lines with hard tabs
Fixes #1681
2014-03-04 17:55:53 -07:00
Ben Ogle 9d59043788 Upgrade solarized-dark-syntax@0.12.0 2014-03-04 16:54:31 -08:00
Nathan Sobo 33f0ca3042 Merge pull request #1695 from atom/ns-fix-softwrap-with-scrollbars
When scrollbar is visible, account for it when soft wrapping lines
2014-03-05 01:52:19 +02:00
Nathan Sobo e1bc62dae3 Add a spec for line wrapping in the presence of legacy scrollbars 2014-03-04 16:45:50 -07:00
Kevin Sawicki 77dbe9ccac Prepare 0.67.0 release 2014-03-04 15:35:36 -08:00
Kevin Sawicki 150d8c2119 Upgrade apm for semver version fix 2014-03-04 14:52:48 -08:00
Kevin Sawicki b16f6adf76 Upgrade to language-go@0.7.0 2014-03-04 14:50:54 -08:00
Nathan Sobo 834dd963ef Subtract the scrollbar's width when calculating editor's width in chars
Fixes #1342
2014-03-04 15:46:07 -07:00
Kevin Sawicki 01e0f9c2b7 Upgrade to language-c@0.13.0 2014-03-04 14:45:50 -08:00
Kevin Sawicki b4c0bb1f18 Upgrade apm for upgrade command 2014-03-04 14:43:57 -08:00
Corey Johnson f70fc683d1 Merge pull request #1693 from atom/cj-check-for-update-fix
Fix "check for update" crash
2014-03-04 14:03:38 -08:00
probablycorey 956d4bd5bf Rely on events to hide the "Check for update" menu item 2014-03-04 12:31:32 -08:00
probablycorey 8b45f89a75 Remove unnecessary method 2014-03-04 12:30:15 -08:00
probablycorey def6b67c8f Menu items hide conflicting items when made visible. 2014-03-04 12:26:50 -08:00
probablycorey e8136853db Add 'downloading update' menu item
Fixes #1689, gets around the crashing bug when displaying a dialog
when update is found.
2014-03-04 12:26:50 -08:00
probablycorey 084b41e33b Remove listeners after check for update is run. 2014-03-04 12:26:50 -08:00
probablycorey 6242bd7eb7 Update cson link 2014-03-04 12:25:59 -08:00
Kevin Sawicki 5fbe298f9c Upgrade to timecop@0.17.0 2014-03-04 12:00:31 -08:00
Kevin Sawicki b1c2c645df Upgrade to image-view@0.28.0 2014-03-04 10:41:19 -08:00
Kevin Sawicki d2a6aa5462 Merge pull request #1683 from atom/ks-npm-remove-strict-ssl
npm ca issue
2014-03-04 10:32:53 -08:00
Kevin Sawicki 71abe66b8f Put npm cache in ~/.atom/.npm 2014-03-04 10:19:20 -08:00
Kevin Sawicki 01eb6e31ba Revert "Set --ca to null on the command line"
This reverts commit 7f4c8023aee10ded0088076773c6c13f92993aab.
2014-03-04 10:19:20 -08:00
Kevin Sawicki 071e6f885f Set --ca to null on the command line 2014-03-04 10:19:20 -08:00
Kevin Sawicki 5fcde96f88 Add .npmrc file with default ca value 2014-03-04 10:19:20 -08:00
Nathan Sobo a1ad10b3ee Merge pull request #1671 from atom/ns-improve-workspace-api-docs
Improve Workspace and WorkspaceView API docs
2014-03-04 20:18:34 +02:00
Nathan Sobo 6d26732208 Merge pull request #1674 from atom/ns-scrollbar-style
Apply 'scrollbars-visible-always/when-scrolling' class to WorkspaceView
2014-03-04 20:08:25 +02:00
Nathan Sobo 20a396f190 Merge branch 'master' into ns-improve-workspace-api-docs 2014-03-04 11:04:24 -07:00
Nathan Sobo 4b7e5ca9fc Make Workspace::openSync private for now 2014-03-04 11:02:52 -07:00
Nathan Sobo 8522707bd2 Switch to .scrollbars-visible-always/when-scrolling class names 2014-03-04 10:50:45 -07:00
Kevin Sawicki a1505736d7 Upgrade to language-ruby-on-rails@0.10.0 2014-03-04 09:49:27 -08:00
Kevin Sawicki 5cd17028d6 Upgrade to settings-view@0.88.0 2014-03-04 09:33:45 -08:00
Kevin Sawicki 3089dd8688 Upgrade to language-javascript@0.15.0 2014-03-04 09:31:40 -08:00
Kevin Sawicki 044c45225b Upgrade to snippets@0.33.0 2014-03-04 09:31:40 -08:00
Corey Johnson 0c1ade82b2 Merge pull request #1680 from atom/izuzak/minor-docs-fixes
Minor documentation tweaks/fixes
2014-03-04 09:26:38 -08:00
Ivan Zuzak 7fdf5ed7dc remove public link to private apm repo 2014-03-04 15:50:49 +01:00
Ivan Zuzak 6fb956688a add short init.coffee example 2014-03-04 14:42:23 +01:00
Ivan Zuzak 28b362f8ff add coffeescript link 2014-03-04 14:12:41 +01:00
Ivan Zuzak 7035ccdcd2 add CSON link to docs 2014-03-04 14:11:12 +01:00
Ivan Zuzak ba5ac8d872 use - instead of + in keyboard shortcuts 2014-03-04 14:06:02 +01:00
Nathan Sobo ea16ecc81f 💄 Drop the ::onValue call 2014-03-03 22:38:17 -07:00
Nathan Sobo 0eac9d3e6f Apply 'scrollbar-style-x' class to WorkspaceView
…where x is 'overlay' or 'legacy' depending on whether the scrollbars
are only visible when scrolling (overlay) or always visible (legacy).

This will allow us to style scrollbars in legacy mode without forcing
them to be visible in overlay mode.
2014-03-03 22:33:48 -07:00
Kevin Sawicki 68a8b6d437 Upgrade to tree-view@0.74.0 2014-03-03 19:21:34 -08:00
Kevin Sawicki e136ba9f3e Upgrade to fuzzy-finder@0.39.0 2014-03-03 19:21:02 -08:00
Kevin Sawicki 9ee6bea772 Remove stray snippet 2014-03-03 18:51:17 -08:00
Kevin Sawicki 79bdde4f08 Upgrade to tree-view@0.73.0 2014-03-03 18:48:24 -08:00
Kevin Sawicki 2a5f0e3c9f Upgrade to autocomplete@0.26.0 2014-03-03 17:44:58 -08:00
Kevin Sawicki 3c42f3de47 Upgrade to autocomplete@0.25.0 2014-03-03 17:40:44 -08:00
Kevin Sawicki 7cd15d408e Prepare 0.66.0 2014-03-03 16:10:16 -08:00
Nathan Sobo 5228b778dc Add deprecated ::joinLine method 2014-03-03 16:51:39 -07:00
Ben Ogle 49eaf7afeb Upgrade markdown-preview@0.44.0 2014-03-03 15:42:05 -08:00
probablycorey b2f02232f2 Upgrade to feedback@0.28.0 2014-03-03 15:21:39 -08:00
Ben Ogle 2f2d7da20b Upgrade apm 2014-03-03 15:05:23 -08:00
Nathan Sobo 168043d422 Clean up WorkspaceView API docs 2014-03-03 16:00:36 -07:00
Nathan Sobo 101e1f6b50 Export {Workspace} in the 'atom' module 2014-03-03 16:00:36 -07:00
Nathan Sobo 323b6cec9d Clean up the Workspace API docs 2014-03-03 16:00:36 -07:00
Ben Ogle 019a04c488 Upgrade to status-bar@0.35.0 2014-03-03 14:54:01 -08:00
Ben Ogle e566bbc5e7 Upgrade to find-and-replace@0.88.0 2014-03-03 14:41:18 -08:00
Ben Ogle d2140672fd Revert "Upgrade find-and-replace@0.88.0"
This reverts commit 0d8ad2d8b0.
2014-03-03 14:40:00 -08:00
Ben Ogle 667df80d35 Upgrade status-bar@0.34.0 2014-03-03 14:24:28 -08:00
Ben Ogle 0d8ad2d8b0 Upgrade find-and-replace@0.88.0 2014-03-03 14:22:56 -08:00
Ben Ogle 1796ff6871 Merge pull request #1644 from atom/bo-syntax-variable-update
Update syntax color variables
2014-03-03 14:21:28 -08:00
Kevin Sawicki 49c54ee69a Upgrade to settings-view@0.87.0 2014-03-03 13:31:55 -08:00
Kevin Sawicki d8e314b0a0 Upgrade apm to include bundled node 2014-03-03 12:43:01 -08:00
watsonian 65acfe61ce Bump Atom's whitespace package dependency. 2014-03-03 11:44:55 -06:00
Kevin Sawicki 2f067de10a Upgrade to settings-view@0.86.0 2014-03-03 09:20:29 -08:00
Kevin Sawicki acecb50f7e Upgrade to command-palette@0.19.0 2014-03-03 09:01:41 -08:00
Kevin Sawicki 9b27932d2c Upgrade to language-coffee-script@0.15.0 2014-03-02 17:40:55 -08:00
Kevin Sawicki 4aa8c0a76a Prevent SelectListView from closing on scrollbar clicks 2014-03-02 17:22:30 -08:00
Kevin Sawicki 246e43217a Upgrade to release-notes@0.26.0 2014-03-02 16:54:11 -08:00
Kevin Sawicki 6925a5f3a4 Upgrade to background-tips@0.9.0 2014-03-02 16:41:56 -08:00
Kevin Sawicki 81a92a9f13 Upgrade to timecop@0.16.0 2014-03-02 16:25:33 -08:00
Kevin Sawicki 8440d66d33 Upgrade to link@0.20.0 2014-03-02 16:19:13 -08:00
Kevin Sawicki 63ce978afe Upgrade to tabs@0.27.0 2014-03-02 15:09:55 -08:00
Kevin Sawicki b4e6386496 Upgrade to language-javascript@0.14.0 2014-03-02 14:19:19 -08:00
Cheng Zhao f524a96add Merge pull request #1660 from atom/atom-shell-v0.10.4
Upgrade to atom-shell@0.10.4
2014-03-02 10:54:31 +00:00
Cheng Zhao 1d0f3bb831 Upgrade to atom-shell@0.10.4 2014-03-02 18:46:32 +08:00
Nathan Sobo 2e0ef27570 Update to language-css@0.11.0 for new html5 tags 2014-03-01 17:16:24 -08:00
Nathan Sobo ebbb8fcef1 Upgrade to exception-reporting@0.17.0 2014-03-01 17:09:34 -08:00
Kevin Sawicki 1d89d3dbe9 Upgrade to language-ruby-on-rails@0.9.0 2014-03-01 17:08:10 -08:00
Kevin Sawicki 18512f5b99 Upgrade to language-python@0.11.0 2014-03-01 17:02:39 -08:00
Kevin Sawicki 5d4906b4d1 Upgrade to language-html@0.10.0 2014-03-01 16:59:50 -08:00
Kevin Sawicki 5e83a0eea6 Upgrade to language-python@0.10.0 2014-03-01 16:19:21 -08:00
Kevin Sawicki 3f43856145 Upgrade to symbols-view@0.41.0 2014-03-01 16:14:08 -08:00
Nathan Sobo bb16ca6394 Prepare 0.65.0 release 2014-03-01 16:07:54 -08:00
Ben Ogle 0e0b6a4978 Upgrade atom-light-syntax@0.15.0 2014-03-01 11:28:17 -08:00
Ben Ogle 2799892f1d Upgrade to atom-dark-syntax@0.15.0 2014-02-28 20:36:36 -08:00
Ben Ogle 7ecd839310 Update solarized-light-syntax@0.7.0 2014-02-28 20:14:41 -08:00
Ben Ogle 11a2628ed2 Upgrade solarized-dark-syntax@0.11.0 2014-02-28 19:50:15 -08:00
Ben Ogle a24b9cf9b9 Upgrade base16-tomorrow-dark-theme 2014-02-28 19:26:11 -08:00
Ben Ogle 705f77f5ba Comments 2014-02-28 17:38:08 -08:00
Ben Ogle c71cbf2e09 Add variables for wrap-guide and indent-guide 2014-02-28 17:38:08 -08:00
Ben Ogle 33aba7b721 Update syntax color variables 2014-02-28 17:38:08 -08:00
31 arquivos alterados com 2851 adições e 2652 exclusões
+2
Ver Arquivo
@@ -0,0 +1,2 @@
ca =
cache = ~/.atom/.npm
+2
Ver Arquivo
@@ -31,6 +31,7 @@ The classes available from `require 'atom'` are:
* [SelectListView][SelectListView]
* [View][View]
* [WorkspaceView][WorkspaceView]
* [Workspace][Workspace]
### How do I create a package?
@@ -54,5 +55,6 @@ Atom ships with node 0.11.10 and the comprehensive node API docs are available
[SelectListView]: ../classes/SelectListView.html
[View]: ../classes/View.html
[WorkspaceView]: ../classes/WorkspaceView.html
[Workspace]: ../classes/Workspace.html
[creating-a-package]: https://atom.io/docs/latest/creating-a-package
[node-docs]: http://nodejs.org/docs/v0.11.10/api
+1 -2
Ver Arquivo
@@ -338,7 +338,7 @@ code depending on whether the tests passed or failed.
## Publishing
Atom bundles a command line utility called [apm] which can be used to publish
Atom bundles a command line utility called apm which can be used to publish
Atom packages to the public registry.
Once your package is written and ready for distribution you can run the
@@ -361,7 +361,6 @@ all the other available commands.
[cs-syntax]: https://github.com/atom/language-coffee-script
[npm]: http://en.wikipedia.org/wiki/Npm_(software)
[npm-keys]: https://npmjs.org/doc/json.html
[apm]: https://github.com/atom/apm
[git-tag]: http://git-scm.com/book/en/Git-Basics-Tagging
[wrap-guide]: https://github.com/atom/wrap-guide/
[keymaps]: advanced/keymaps.md
+13 -3
Ver Arquivo
@@ -1,7 +1,7 @@
# Customizing Atom
To change a setting, configure a theme, or install a package just open the
Settings view in the current window by pressing `cmd+,`.
Settings view in the current window by pressing `cmd-,`.
## Changing The Theme
@@ -86,7 +86,7 @@ currently in use.
## Advanced Configuration
Atom loads configuration settings from the `config.cson` file in your _~/.atom_
directory, which contains CoffeeScript-style JSON:
directory, which contains [CoffeeScript-style JSON][CSON] (CSON):
```coffee
'core':
@@ -141,13 +141,21 @@ You can open this file in an editor from the _Atom > Open Your Config_ menu.
### init.coffee
When Atom finishes loading, it will evaluate _init.coffee_ in your _~/.atom_
directory, giving you a chance to run arbitrary personal CoffeeScript code to
directory, giving you a chance to run arbitrary personal [CoffeeScript][] code to
make customizations. You have full access to Atom's API from code in this file.
If customizations become extensive, consider [creating a package][creating-a-package].
You can open this file in an editor from the _Atom > Open Your Init Script_
menu.
For example, if you have the Audio Beep configuration setting enabled, you
could add the following code to your _~/.atom/init.coffee_ file to have Atom
greet you with an audio beep every time it loads:
```coffee
atom.beep()
```
This file can also be named _init.js_ and contain JavaScript code.
### styles.less
@@ -174,3 +182,5 @@ This file can also be named _styles.css_ and contain CSS.
[creating-a-package]: creating-a-package.md
[create-theme]: creating-a-theme.md
[LESS]: http://www.lesscss.org
[CSON]: https://github.com/atom/season
[CoffeeScript]: http://coffeescript.org/
+2 -1
Ver Arquivo
@@ -20,7 +20,8 @@ The final package can be viewed at
To begin, press `cmd-shift-P` to bring up the [Command
Palette](https://github.com/atom/command-palette). Type "generate package" and
select the "Package Generator: Generate Package" command. Now we need to name
the package. Let's call it _ascii-art_.
the package. Try to avoid naming your package with the *atom-* prefix, for
example we are going to call this package _ascii-art_.
Atom will open a new window with the contents of our new _ascii-art_ package
displayed in the Tree View. Because this window is opened **after** the package
+1
Ver Arquivo
@@ -21,3 +21,4 @@ unless process.env.ATOM_SHELL_INTERNAL_RUN_AS_NODE
module.exports.Task = require '../src/task'
module.exports.View = View
module.exports.WorkspaceView = require '../src/workspace-view'
module.exports.Workspace = require '../src/workspace'
+1
Ver Arquivo
@@ -7,6 +7,7 @@
{ label: "VERSION", enabled: false }
{ label: "Restart and Install Update", command: 'application:install-update', visible: false}
{ label: "Check for Update", command: 'application:check-for-update', visible: false}
{ label: "Downloading Update", command: 'application:check-for-update', enabled: false, visible: false}
{ type: 'separator' }
{ label: 'Preferences...', command: 'application:show-settings' }
{ label: 'Open Your Config', command: 'application:open-your-config' }
+47 -46
Ver Arquivo
@@ -1,7 +1,7 @@
{
"name": "atom",
"productName": "Atom",
"version": "0.64.0",
"version": "0.69.0",
"main": "./src/browser/main.js",
"repository": {
"type": "git",
@@ -11,7 +11,7 @@
"url": "https://github.com/atom/atom/issues"
},
"license": "All Rights Reserved",
"atomShellVersion": "0.10.3",
"atomShellVersion": "0.10.5",
"dependencies": {
"async": "0.2.6",
"bootstrap": "git://github.com/atom/bootstrap.git#6af81906189f1747fd6c93479e3d998ebe041372",
@@ -20,7 +20,7 @@
"coffeestack": "0.7.0",
"delegato": "1.x",
"emissary": "1.x",
"first-mate": ">=1.1.5 <2.0",
"first-mate": ">=1.4 <2.0",
"fs-plus": "2.x",
"fstream": "0.1.24",
"fuzzaldrin": "~1.1",
@@ -41,83 +41,84 @@
"random-words": "0.0.1",
"runas": "0.5.x",
"scandal": "0.15.0",
"scrollbar-style": "^0.1.0",
"season": ">=1.0.2 <2.0",
"semver": "1.1.4",
"serializable": "1.x",
"space-pen": "3.1.1",
"temp": "0.5.0",
"text-buffer": "^1.2.0",
"text-buffer": "^1.4.0",
"theorist": "1.x",
"underscore-plus": ">=1.0.2 <2.0",
"vm-compatibility-layer": "0.1.0"
},
"packageDependencies": {
"atom-dark-syntax": "0.14.0",
"atom-dark-syntax": "0.15.0",
"atom-dark-ui": "0.23.0",
"atom-light-syntax": "0.14.0",
"atom-light-syntax": "0.15.0",
"atom-light-ui": "0.22.0",
"base16-tomorrow-dark-theme": "0.12.0",
"solarized-dark-syntax": "0.10.0",
"solarized-light-syntax": "0.6.0",
"base16-tomorrow-dark-theme": "0.13.0",
"solarized-dark-syntax": "0.12.0",
"solarized-light-syntax": "0.7.0",
"archive-view": "0.26.0",
"autocomplete": "0.24.0",
"autocomplete": "0.27.0",
"autoflow": "0.15.0",
"autosave": "0.12.0",
"background-tips": "0.8.0",
"background-tips": "0.9.0",
"bookmarks": "0.21.0",
"bracket-matcher": "0.23.0",
"command-palette": "0.18.0",
"bracket-matcher": "0.25.0",
"command-palette": "0.19.0",
"dev-live-reload": "0.28.0",
"exception-reporting": "0.16.0",
"feedback": "0.27.0",
"find-and-replace": "0.87.0",
"fuzzy-finder": "0.38.0",
"exception-reporting": "0.17.0",
"feedback": "0.28.0",
"find-and-replace": "0.89.1",
"fuzzy-finder": "0.39.0",
"git-diff": "0.25.0",
"go-to-line": "0.18.0",
"grammar-selector": "0.22.0",
"image-view": "0.27.0",
"grammar-selector": "0.23.0",
"image-view": "0.29.0",
"keybinding-resolver": "0.11.0",
"link": "0.19.0",
"markdown-preview": "0.43.0",
"link": "0.20.0",
"markdown-preview": "0.47.0",
"metrics": "0.30.0",
"open-on-github": "0.23.0",
"package-generator": "0.29.0",
"release-notes": "0.25.0",
"settings-view": "0.85.0",
"snippets": "0.32.0",
"spell-check": "0.26.0",
"status-bar": "0.33.0",
"package-generator": "0.30.0",
"release-notes": "0.26.0",
"settings-view": "0.89.0",
"snippets": "0.35.0",
"spell-check": "0.28.0",
"status-bar": "0.35.0",
"styleguide": "0.26.0",
"symbols-view": "0.40.0",
"tabs": "0.26.0",
"timecop": "0.15.0",
"tree-view": "0.72.0",
"update-package-dependencies": "0.4.0",
"symbols-view": "0.41.0",
"tabs": "0.27.0",
"timecop": "0.17.0",
"tree-view": "0.74.0",
"update-package-dependencies": "0.6.0",
"welcome": "0.11.0",
"whitespace": "0.15.0",
"whitespace": "0.18.0",
"wrap-guide": "0.16.0",
"language-c": "0.12.0",
"language-coffee-script": "0.14.0",
"language-css": "0.10.0",
"language-c": "0.13.0",
"language-coffee-script": "0.15.0",
"language-css": "0.12.0",
"language-gfm": "0.19.0",
"language-git": "0.9.0",
"language-go": "0.6.0",
"language-html": "0.9.0",
"language-go": "0.7.0",
"language-html": "0.10.0",
"language-hyperlink": "0.8.0",
"language-java": "0.8.0",
"language-javascript": "0.13.0",
"language-java": "0.9.0",
"language-javascript": "0.16.0",
"language-json": "0.8.0",
"language-less": "0.6.0",
"language-make": "0.9.0",
"language-objective-c": "0.9.0",
"language-objective-c": "0.10.0",
"language-perl": "0.8.0",
"language-php": "0.9.0",
"language-php": "0.10.0",
"language-property-list": "0.7.0",
"language-python": "0.9.0",
"language-ruby": "0.14.0",
"language-ruby-on-rails": "0.8.0",
"language-python": "0.12.0",
"language-ruby": "0.15.0",
"language-ruby-on-rails": "0.10.0",
"language-sass": "0.8.0",
"language-shellscript": "0.7.0",
"language-shellscript": "0.8.0",
"language-source": "0.7.0",
"language-sql": "0.7.0",
"language-text": "0.6.0",
+8 -8
Ver Arquivo
@@ -25,21 +25,21 @@ if (!fs.existsSync(apmInstallPath))
if (!fs.existsSync(path.join(apmInstallPath, 'node_modules')))
fs.mkdirSync(path.join(apmInstallPath, 'node_modules'));
var apmPath = 'apm/node_modules/atom-package-manager/bin/apm'
var apmFlags = process.env.JANKY_SHA1 || process.argv.indexOf('--no-color') !== -1 ? '--no-color' : '';
var packagesToDedupe = ['fs-plus', 'humanize-plus', 'oniguruma', 'roaster', 'season'];
var npmCommand = 'npm --userconfig=' + path.resolve('.npmrc') + ' ';
var echoNewLine = process.platform == 'win32' ? 'echo.' : 'echo';
var commands = [
'git submodule --quiet sync',
'git submodule --quiet update --recursive --init',
{command: 'npm --strict-ssl=false install --quiet', options: {cwd: path.resolve(__dirname, '..', 'build'), ignoreStdout: true}},
{command: 'npm --strict-ssl=false install --quiet', options: {cwd: apmVendorPath, ignoreStdout: true}},
{command: 'npm --strict-ssl=false install --quiet ' + apmVendorPath, options: {cwd: apmInstallPath, ignoreStdout: true}},
{command: 'npm --strict-ssl=false install --quiet ' + apmVendorPath, options: {ignoreStdout: true}},
{command: 'node ../../apm/node_modules/atom-package-manager/bin/apm rebuild', options: {cwd: path.resolve('node_modules', 'atom-package-manager'), ignoreStdout: true}},
{command: npmCommand + 'install --quiet', options: {cwd: path.resolve(__dirname, '..', 'build'), ignoreStdout: true}},
{command: npmCommand + 'install --quiet', options: {cwd: apmVendorPath, ignoreStdout: true}},
{command: npmCommand + 'install --quiet ' + apmVendorPath, options: {cwd: apmInstallPath, ignoreStdout: true}},
echoNewLine,
'node apm/node_modules/atom-package-manager/bin/apm clean ' + apmFlags,
'node apm/node_modules/atom-package-manager/bin/apm install --quiet ' + apmFlags,
'node apm/node_modules/atom-package-manager/bin/apm dedupe --quiet ' + apmFlags + ' ' + packagesToDedupe.join(' '),
apmPath + ' clean ' + apmFlags,
apmPath + ' install --quiet ' + apmFlags,
apmPath + ' dedupe --quiet ' + apmFlags + ' ' + packagesToDedupe.join(' '),
];
process.chdir(path.dirname(__dirname));
+1
Ver Arquivo
@@ -22,6 +22,7 @@ var commands = [
[__dirname, '..', 'atom-shell'],
[home, '.atom', '.node-gyp'],
[home, '.atom', 'storage'],
[home, '.atom', '.npm'],
[tmpdir, 'atom-build'],
[tmpdir, 'atom-cached-atom-shells'],
[tmpdir, 'atom-compile-cache'],
+7
Ver Arquivo
@@ -600,6 +600,13 @@ describe "DisplayBuffer", ->
expect(displayBuffer.screenPositionForBufferPosition([0, 1])).toEqual [0, 2]
expect(displayBuffer.bufferPositionForScreenPosition([0, 2])).toEqual [0, 1]
it "correctly translates positions on soft wrapped lines containing tabs", ->
buffer.setText('\t\taa bb cc dd ee ff gg')
displayBuffer.setSoftWrap(true)
displayBuffer.setEditorWidthInChars(10)
expect(displayBuffer.screenPositionForBufferPosition([0, 10], wrapAtSoftNewlines: true)).toEqual [1, 0]
expect(displayBuffer.bufferPositionForScreenPosition([1, 0])).toEqual [0, 10]
describe ".getMaxLineLength()", ->
it "returns the length of the longest screen line", ->
expect(displayBuffer.getMaxLineLength()).toBe 65
+2428 -2420
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+14 -43
Ver Arquivo
@@ -1806,6 +1806,17 @@ describe "EditorView", ->
runs ->
expect(editor.getSoftWrapColumn()).toBeLessThan previousSoftWrapColumn
it "accounts for the width of the scrollbar if there is one", ->
# force the scrollbar to always be visible, regardless of OS visibility setting
$('#jasmine-content').prepend """
<style>
::-webkit-scrollbar { width: 15px; }
</style>
"""
setEditorHeightInLines(editorView, 5)
setEditorWidthInChars(editorView, 40)
expect(editor.lineForScreenRow(2).text.length).toBe 34
describe "gutter rendering", ->
beforeEach ->
editorView.attachToDom(heightInLines: 5.5)
@@ -2419,51 +2430,11 @@ describe "EditorView", ->
editorView.underlayer.trigger event
expect(editor.getSelection().getScreenRange()).toEqual [[0,0], [12,2]]
# TODO: Move to editor-spec
describe ".reloadGrammar()", ->
[filePath] = []
beforeEach ->
tmpdir = fs.absolute(temp.dir)
filePath = path.join(tmpdir, "grammar-change.txt")
fs.writeFileSync(filePath, "var i;")
afterEach ->
fs.removeSync(filePath) if fs.existsSync(filePath)
it "updates all the rendered lines when the grammar changes", ->
editor = atom.project.openSync(filePath)
editorView.edit(editor)
expect(editor.getGrammar().name).toBe 'Plain Text'
atom.syntax.setGrammarOverrideForPath(filePath, 'source.js')
editor.reloadGrammar()
expect(editor.getGrammar().name).toBe 'JavaScript'
tokenizedBuffer = editorView.editor.displayBuffer.tokenizedBuffer
line0 = tokenizedBuffer.lineForScreenRow(0)
expect(line0.tokens.length).toBe 3
expect(line0.tokens[0]).toEqual(value: 'var', scopes: ['source.js', 'storage.modifier.js'])
it "doesn't update the rendered lines when the grammar doesn't change", ->
expect(editor.getGrammar().name).toBe 'JavaScript'
spyOn(editorView, 'updateDisplay').andCallThrough()
editor.reloadGrammar()
expect(editor.reloadGrammar()).toBeFalsy()
expect(editorView.updateDisplay).not.toHaveBeenCalled()
expect(editor.getGrammar().name).toBe 'JavaScript'
it "emits an editor:grammar-changed event when updated", ->
editor = atom.project.openSync(filePath)
editorView.edit(editor)
describe "when the editor's grammar is changed", ->
it "emits an editor:grammar-changed event", ->
eventHandler = jasmine.createSpy('eventHandler')
editorView.on('editor:grammar-changed', eventHandler)
editor.reloadGrammar()
expect(eventHandler).not.toHaveBeenCalled()
atom.syntax.setGrammarOverrideForPath(filePath, 'source.js')
editor.reloadGrammar()
editor.setGrammar(atom.syntax.selectGrammar('.coffee'))
expect(eventHandler).toHaveBeenCalled()
describe ".replaceSelectedText()", ->
+25 -1
Ver Arquivo
@@ -254,6 +254,30 @@ describe "Keymap", ->
it "favors the more specific complete match", ->
describe ".bindKeys(name, selector, bindings)", ->
it "normalizes bindings that use shift with lower case alpha char", ->
fooHandler = jasmine.createSpy('fooHandler')
fragment.on 'foo', fooHandler
keymap.bindKeys 'name', '*', 'ctrl-shift-l': 'foo'
result = keymap.handleKeyEvent(keydownEvent('l', ctrlKey: true, altKey: false, shiftKey: true, target: fragment[0]))
expect(result).toBe(false)
expect(fooHandler).toHaveBeenCalled()
it "normalizes bindings that use shift with upper case alpha char", ->
fooHandler = jasmine.createSpy('fooHandler')
fragment.on 'foo', fooHandler
keymap.bindKeys 'name', '*', 'ctrl-shift-L': 'foo'
result = keymap.handleKeyEvent(keydownEvent('l', ctrlKey: true, altKey: false, shiftKey: true, target: fragment[0]))
expect(result).toBe(false)
expect(fooHandler).toHaveBeenCalled()
it "normalizes bindings that use an upper case alpha char without shift", ->
fooHandler = jasmine.createSpy('fooHandler')
fragment.on 'foo', fooHandler
keymap.bindKeys 'name', '*', 'ctrl-L': 'foo'
result = keymap.handleKeyEvent(keydownEvent('l', ctrlKey: true, altKey: false, shiftKey: true, target: fragment[0]))
expect(result).toBe(false)
expect(fooHandler).toHaveBeenCalled()
it "normalizes the key patterns in the hash to put the modifiers in alphabetical order", ->
fooHandler = jasmine.createSpy('fooHandler')
fragment.on 'foo', fooHandler
@@ -306,7 +330,7 @@ describe "Keymap", ->
describe "when shift is pressed when a non-modifer key", ->
it "returns a string that identifies the key pressed", ->
expect(keymap.keystrokeStringForEvent(keydownEvent('A', shiftKey: true))).toBe 'A'
expect(keymap.keystrokeStringForEvent(keydownEvent('A', shiftKey: true))).toBe 'shift-A'
expect(keymap.keystrokeStringForEvent(keydownEvent('{', shiftKey: true))).toBe '{'
expect(keymap.keystrokeStringForEvent(keydownEvent('left', shiftKey: true))).toBe 'shift-left'
expect(keymap.keystrokeStringForEvent(keydownEvent('Left', shiftKey: true))).toBe 'shift-left'
+2
Ver Arquivo
@@ -90,11 +90,13 @@ describe "Window", ->
it "saves the serialized state of the window so it can be deserialized after reload", ->
workspaceState = atom.workspace.serialize()
syntaxState = atom.syntax.serialize()
projectState = atom.project.serialize()
atom.unloadEditorWindow()
expect(atom.state.workspace).toEqual workspaceState
expect(atom.state.syntax).toEqual syntaxState
expect(atom.state.project).toEqual projectState
expect(atom.saveSync).toHaveBeenCalled()
it "unsubscribes from all buffers", ->
+8
Ver Arquivo
@@ -241,3 +241,11 @@ describe "WorkspaceView", ->
expect(atom.workspaceView.getActivePane().getItems()).toHaveLength 1
atom.workspaceView.trigger('core:close')
expect(atom.workspaceView.getActivePane().getItems()).toHaveLength 0
describe "the scrollbar visibility class", ->
it "has a class based on the style of the scrollbar", ->
scrollbarStyle = require 'scrollbar-style'
scrollbarStyle.emitValue 'legacy'
expect(atom.workspaceView).toHaveClass 'scrollbars-visible-always'
scrollbarStyle.emitValue 'overlay'
expect(atom.workspaceView).toHaveClass 'scrollbars-visible-when-scrolling'
+2 -1
Ver Arquivo
@@ -229,7 +229,7 @@ class Atom extends Model
deserializeProject: ->
Project = require './project'
@project ?= @deserializers.deserialize(@project) ? new Project(path: @getLoadSettings().initialPath)
@project ?= @deserializers.deserialize(@state.project) ? new Project(path: @getLoadSettings().initialPath)
deserializeWorkspaceView: ->
Workspace = require './workspace'
@@ -280,6 +280,7 @@ class Atom extends Model
return if not @project and not @workspaceView
@state.syntax = @syntax.serialize()
@state.project = @project.serialize()
@state.workspace = @workspace.serialize()
@packages.deactivatePackages()
@state.packageStates = @packages.packageStates
+17
Ver Arquivo
@@ -71,11 +71,28 @@ class ApplicationMenu
# Toggles Install Update Item
showInstallUpdateItem: (visible=true) ->
if visible
@showDownloadingUpdateItem(false)
@showCheckForUpdateItem(false)
if (item = _.find(@flattenMenuItems(@menu), (i) -> i.label == 'Restart and Install Update'))
item.visible = visible
# Toggles Downloading Update Item
showDownloadingUpdateItem: (visible=true) ->
if visible
@showInstallUpdateItem(false)
@showCheckForUpdateItem(false)
if (item = _.find(@flattenMenuItems(@menu), (i) -> i.label == 'Downloading Update'))
item.visible = visible
# Toggles Check For Update Item
showCheckForUpdateItem: (visible=true) ->
if visible
@showDownloadingUpdateItem(false)
@showInstallUpdateItem(false)
if (item = _.find(@flattenMenuItems(@menu), (i) -> i.label == 'Check for Update'))
item.visible = visible
+16 -31
Ver Arquivo
@@ -30,7 +30,6 @@ socketPath =
module.exports =
class AtomApplication
_.extend @prototype, EventEmitter.prototype
updateVersion: null
# Public: The entry point into the Atom application.
@open: (options) ->
@@ -130,51 +129,42 @@ class AtomApplication
# Enable updates unless running from a local build of Atom.
setupAutoUpdater: ->
return if /\w{7}/.test(@version) # Only released versions should check for updates.
autoUpdater.setFeedUrl "https://atom.io/api/updates?version=#{@version}"
autoUpdater.on 'checking-for-update', =>
@applicationMenu.showDownloadingUpdateItem(false)
@applicationMenu.showInstallUpdateItem(false)
@applicationMenu.showCheckForUpdateItem(false)
autoUpdater.on 'update-not-available', =>
@applicationMenu.showInstallUpdateItem(false)
@applicationMenu.showCheckForUpdateItem(true)
autoUpdater.on 'update-downloaded', (event, releaseNotes, releaseName, releaseDate, releaseURL) =>
atomWindow.sendCommand('window:update-available', [releaseName, releaseNotes]) for atomWindow in @windows
autoUpdater.on 'update-available', =>
@applicationMenu.showDownloadingUpdateItem(true)
autoUpdater.on 'update-downloaded', (event, releaseNotes, releaseVersion, releaseDate, releaseURL) =>
atomWindow.sendCommand('window:update-available', [releaseVersion, releaseNotes]) for atomWindow in @windows
@applicationMenu.showInstallUpdateItem(true)
@applicationMenu.showCheckForUpdateItem(false)
@updateVersion = releaseName
autoUpdater.on 'error', (event, message) =>
@applicationMenu.showInstallUpdateItem(false)
@applicationMenu.showCheckForUpdateItem(true)
# Check for update after Atom has fully started and the menus are created
setTimeout((-> autoUpdater.checkForUpdates()), 5000)
checkForUpdate: ->
autoUpdater.once 'update-available', ->
dialog.showMessageBox
type: 'info'
buttons: ['OK']
message: 'Update available.'
detail: 'A new update is being downloaded.'
@onUpdateNotAvailable ?= =>
autoUpdater.removeListener 'error', @onUpdateError
dialog.showMessageBox type: 'info', buttons: ['OK'], message: 'No update available.', detail: "Version #{@version} is the latest version."
autoUpdater.once 'update-not-available', =>
dialog.showMessageBox
type: 'info'
buttons: ['OK']
message: 'No update available.'
detail: "Version #{@version} is the latest version."
autoUpdater.once 'error', (event, message)->
dialog.showMessageBox
type: 'warning'
buttons: ['OK']
message: 'There was an error checking for updates.'
detail: message
@onUpdateError ?= (event, message) =>
autoUpdater.removeListener 'update-not-available', @onUpdateNotAvailable
dialog.showMessageBox type: 'warning', buttons: ['OK'], message: 'There was an error checking for updates.', detail: message
autoUpdater.on 'update-not-available', @onUpdateNotAvailable
autoUpdater.on 'error', @onUpdateError
autoUpdater.checkForUpdates()
# Registers basic application commands, non-idempotent.
@@ -427,8 +417,3 @@ class AtomApplication
promptForPath: ({devMode}={}) ->
dialog.showOpenDialog title: 'Open', properties: ['openFile', 'openDirectory', 'multiSelections', 'createDirectory'], (pathsToOpen) =>
@openPaths({pathsToOpen, devMode})
# Public: If an update is available, it returns the new version string
# otherwise it returns null.
getUpdateVersion: ->
@updateVersion
-1
Ver Arquivo
@@ -121,7 +121,6 @@ class AtomWindow
if @loaded
@focus()
@sendCommand('window:open-path', {pathToOpen, initialLine})
@sendCommand('window:update-available', global.atomApplication.getUpdateVersion()) if global.atomApplication.getUpdateVersion()
else
@browserWindow.once 'window:loaded', => @openPath(pathToOpen, initialLine)
+5 -1
Ver Arquivo
@@ -667,11 +667,15 @@ class EditorView extends View
@editor.setSoftWrap(not @editor.getSoftWrap())
calculateWidthInChars: ->
Math.floor(@scrollView.width() / @charWidth)
Math.floor((@scrollView.width() - @getScrollbarWidth()) / @charWidth)
calculateHeightInLines: ->
Math.ceil($(window).height() / @lineHeight)
getScrollbarWidth: ->
scrollbarElement = @verticalScrollbar[0]
scrollbarElement.offsetWidth - scrollbarElement.clientWidth
# Public: Enables/disables soft wrap on the editor.
#
# softWrap - A {Boolean} which, if `true`, enables soft wrap
+4
Ver Arquivo
@@ -1733,3 +1733,7 @@ class Editor extends Model
getSelectionMarkerAttributes: ->
type: 'selection', editorId: @id, invalidate: 'never'
# Deprecated: Call {::joinLines} instead.
joinLine: ->
@joinLines()
+7 -1
Ver Arquivo
@@ -21,7 +21,13 @@ class KeyBinding
keys = @parseKeystroke(keystroke)
modifiers = keys[0...-1]
modifiers.sort()
[modifiers..., _.last(keys)].join('-')
key = _.last(keys)
modifiers.push 'shift' if /^[A-Z]$/.test(key) and 'shift' not in modifiers
key = key.toUpperCase() if /^[a-z]$/.test(key) and 'shift' in modifiers
[modifiers..., key].join('-')
normalizedKeystroke.join(' ')
@parseKeystroke: (keystroke) ->
+5 -3
Ver Arquivo
@@ -99,10 +99,12 @@ class Keymap
modifiers.push 'cmd'
if event.ctrlKey and key not in Modifiers
modifiers.push 'ctrl'
if event.shiftKey and key not in Modifiers
isNamedKey = key.length > 1
modifiers.push 'shift' if isNamedKey
# Don't push the shift modifier on single letter non-alpha keys (e.g. { or ')
modifiers.push 'shift' unless /^[^a-z]$/i.test(key)
if 'shift' in modifiers and /^[a-z]$/i.test(key)
key = key.toUpperCase()
else
key = key.toLowerCase()
+1 -1
Ver Arquivo
@@ -41,7 +41,7 @@ class PackageManager
# Public: Get the path to the apm command
getApmPath: ->
@apmPath ?= require.resolve('atom-package-manager/bin/apm')
@apmPath ?= path.resolve(__dirname, '..', 'apm', 'node_modules', 'atom-package-manager', 'bin', 'apm')
# Public: Get the paths being used to look for packages.
#
+5
Ver Arquivo
@@ -56,6 +56,11 @@ class SelectListView extends View
@filterEditorView.hiddenInput.on 'focusout', =>
@cancel() unless @cancelling
# This prevents the focusout event from firing on the filter editor view
# when the list is scrolled by clicking the scrollbar and dragging.
@list.on 'mousedown', ({target}) =>
false if target is @list[0]
@on 'core:move-up', =>
@selectPreviousItemView()
@on 'core:move-down', =>
+3 -2
Ver Arquivo
@@ -6,6 +6,7 @@ class TokenizedLine
@tokens = @breakOutAtomicTokens(tokens, tabLength)
@startBufferColumn ?= 0
@text = _.pluck(@tokens, 'value').join('')
@bufferDelta = _.sum(_.pluck(@tokens, 'bufferDelta'))
copy: ->
new TokenizedLine({@tokens, @lineEnding, @ruleStack, @startBufferColumn, @fold})
@@ -55,7 +56,7 @@ class TokenizedLine
@text.length
getMaxBufferColumn: ->
@startBufferColumn + @getMaxScreenColumn()
@startBufferColumn + @bufferDelta
softWrapAt: (column) ->
return [new TokenizedLine([], '', [0, 0], [0, 0]), this] if column == 0
@@ -78,7 +79,7 @@ class TokenizedLine
)
rightFragment = new TokenizedLine(
tokens: rightTokens
startBufferColumn: @startBufferColumn + column
startBufferColumn: @bufferColumnForScreenColumn(column)
ruleStack: @ruleStack
lineEnding: @lineEnding
)
+106 -49
Ver Arquivo
@@ -3,6 +3,7 @@ path = require 'path'
Q = require 'q'
_ = require 'underscore-plus'
Delegator = require 'delegato'
scrollbarStyle = require 'scrollbar-style'
{$, $$, View} = require './space-pen-extensions'
fs = require 'fs-plus'
Workspace = require './workspace'
@@ -14,38 +15,42 @@ PaneRowView = require './pane-row-view'
PaneContainerView = require './pane-container-view'
Editor = require './editor'
# Public: The container for the entire Atom application.
# Public: The top-level view for the entire window. An instance of this class is
# available via the `atom.workspaceView` global.
#
# An instance of this class is always available as the `atom.workspaceView`
# global.
# It is backed by a model object, an instance of {Workspace}, which is available
# via the `atom.workspace` global or {::getModel}. You should prefer to interact
# with the model object when possible, but it won't always be possible with the
# current API.
#
# ## Commands
# ## Adding Perimiter Panels
#
# * `application:about` - Opens the about dialog.
# * `application:show-settings` - Opens the preference pane in the currently
# focused editor.
# * `application:quit` - Quits the entire application.
# * `application:hide` - Hides the entire application.
# * `application:hide-other-applications` - Hides other applications
# running on the system.
# * `application:unhide-other-applications` - Shows other applications
# that were previously hidden.
# * `application:new-window` - Opens a new {AtomWindow} with no {Project}
# path.
# * `application:new-file` - Creates a new file within the focused window.
# Note: only one new file may exist within an {AtomWindow} at a time.
# * `application:open` - Prompts the user for a path to open in a new {AtomWindow}
# * `application:minimize` - Minimizes the currently focused {AtomWindow}
# * `application:zoom` - Expands the window to fill the screen or returns it to
# it's original unzoomed size.
# * `application:bring-all-windows-to-front` - Brings all {AtomWindow}s to the
# the front.
# Use the following methods if possible to attach panels to the perimiter of the
# workspace rather than manipulating the DOM directly to better insulate you to
# changes in the workspace markup:
#
# * {::prependToTop}
# * {::appendToTop}
# * {::prependToBottom}
# * {::appendToBottom}
# * {::prependToLeft}
# * {::appendToLeft}
# * {::prependToRight}
# * {::appendToRight}
#
# ## Requiring in package specs
#
# If you need a `WorkspaceView` instance to test your package, require it via
# the built-in `atom` module.
#
# ```coffee
# {WorkspaceView} = require 'atom'
# ```
#
# You can assign it to the `atom.workspaceView` global in the spec or just use
# it as a local, depending on what you're trying to accomplish. Building the
# `WorkspaceView` is currently expensive, so you should try build a {Workspace}
# instead if possible.
module.exports =
class WorkspaceView extends View
Delegator.includeInto(this)
@@ -81,6 +86,14 @@ class WorkspaceView extends View
@subscribe @model, 'uri-opened', => @trigger 'uri-opened'
@subscribe scrollbarStyle, (style) =>
@removeClass('scrollbars-visible-always scrollbars-visible-when-scrolling')
switch style
when 'legacy'
@addClass("scrollbars-visible-always")
when 'overlay'
@addClass("scrollbars-visible-when-scrolling")
@updateTitle()
@on 'focus', (e) => @handleFocus(e)
@@ -139,6 +152,12 @@ class WorkspaceView extends View
@command 'core:save', => @saveActivePaneItem()
@command 'core:save-as', => @saveActivePaneItemAs()
# Public: Get the underlying model object.
#
# Returns a {Workspace}.
getModel: -> @model
# Public: Install the Atom shell commands on the user's system.
installShellCommands: ->
showErrorDialog = (error) ->
installDirectory = CommandInstaller.getInstallDirectory()
@@ -176,11 +195,11 @@ class WorkspaceView extends View
afterAttach: (onDom) ->
@focus() if onDom
# Public: Shows a dialog asking if the pane was _really_ meant to be closed.
# Prompts to save all unsaved items
confirmClose: ->
@panes.confirmClose()
# Public: Updates the application's title, based on whichever file is open.
# Updates the application's title, based on whichever file is open.
updateTitle: ->
if projectPath = atom.project.getPath()
if item = @getActivePaneItem()
@@ -190,85 +209,119 @@ class WorkspaceView extends View
else
@setTitle('untitled')
# Public: Sets the application's title.
# Sets the application's title.
setTitle: (title) ->
document.title = title
# Returns an Array of all of the application's {EditorView}s.
# Get all editor views.
#
# You should prefer {Workspace::getEditors} unless you absolutely need access
# to the view objects. Also consider using {::eachEditorView}, which will call
# a callback for all current and *future* editor views.
#
# Returns an {Array} of {EditorView}s.
getEditorViews: ->
@panes.find('.pane > .item-views > .editor').map(-> $(this).view()).toArray()
# Public: Prepends the element to the top of the window.
# Public: Prepend an element or view to the panels at the top of the
# workspace.
prependToTop: (element) ->
@vertical.prepend(element)
# Public: Appends the element to the top of the window.
# Public: Append an element or view to the panels at the top of the workspace.
appendToTop: (element) ->
@panes.before(element)
# Public: Prepends the element to the bottom of the window.
# Public: Prepend an element or view to the panels at the bottom of the
# workspace.
prependToBottom: (element) ->
@panes.after(element)
# Public: Appends the element to bottom of the window.
# Public: Append an element or view to the panels at the bottom of the
# workspace.
appendToBottom: (element) ->
@vertical.append(element)
# Public: Prepends the element to the left side of the window.
# Public: Prepend an element or view to the panels at the left of the
# workspace.
prependToLeft: (element) ->
@horizontal.prepend(element)
# Public: Appends the element to the left side of the window.
# Public: Append an element or view to the panels at the left of the
# workspace.
appendToLeft: (element) ->
@vertical.before(element)
# Public: Prepends the element to the right side of the window.
# Public: Prepend an element or view to the panels at the right of the
# workspace.
prependToRight: (element) ->
@vertical.after(element)
# Public: Appends the element to the right side of the window.
# Public: Append an element or view to the panels at the right of the
# workspace.
appendToRight: (element) ->
@horizontal.append(element)
# Public: Returns the currently focused {PaneView}.
# Public: Get the active pane view.
#
# Prefer {Workspace::getActivePane} if you don't actually need access to the
# view.
#
# Returns a {PaneView}.
getActivePaneView: ->
@panes.getActivePane()
# Public: Returns the currently focused item from within the focused {PaneView}
getActivePaneItem: ->
@model.activePaneItem
# Public: Returns the view of the currently focused item.
# Public: Get the view associated with the active pane item.
#
# Returns a view.
getActiveView: ->
@panes.getActiveView()
# Public: Focuses the previous pane by id.
# Focus the previous pane by id.
focusPreviousPaneView: -> @model.activatePreviousPane()
# Public: Focuses the next pane by id.
# Focus the next pane by id.
focusNextPaneView: -> @model.activateNextPane()
# Public: Focuses the pane directly above the active pane.
# Public: Focus the pane directly above the active pane.
focusPaneViewAbove: -> @panes.focusPaneViewAbove()
# Public: Focuses the pane directly below the active pane.
# Public: Focus the pane directly below the active pane.
focusPaneViewBelow: -> @panes.focusPaneViewBelow()
# Public: Focuses the pane directly to the left of the active pane.
# Public: Focus the pane directly to the left of the active pane.
focusPaneViewOnLeft: -> @panes.focusPaneViewOnLeft()
# Public: Focuses the pane directly to the right of the active pane.
# Public: Focus the pane directly to the right of the active pane.
focusPaneViewOnRight: -> @panes.focusPaneViewOnRight()
# Public: Fires a callback on each open {PaneView}.
# Public: Register a function to be called for every current and future
# pane view in the workspace.
#
# callback - A {Function} with a {PaneView} as its only argument.
#
# Returns a subscription object with an `.off` method that you can call to
# unregister the callback.
eachPaneView: (callback) ->
@panes.eachPaneView(callback)
# Public: Get all existing pane views.
#
# Prefer {Workspace::getPanes} if you don't need access to the view objects.
# Also consider using {::eachPaneView} if you want to register a callback for
# all current and *future* pane views.
#
# Returns an Array of all open {PaneView}s.
getPaneViews: ->
@panes.getPanes()
# Public: Fires a callback on each open {EditorView}.
# Public: Register a function to be called for every current and future
# editor view in the workspace.
#
# callback - A {Function} with an {EditorView} as its only argument.
#
# Returns a subscription object with an `.off` method that you can call to
# unregister the callback.
eachEditorView: (callback) ->
callback(editor) for editor in @getEditorViews()
attachedCallback = (e, editor) -> callback(editor)
@@ -290,3 +343,7 @@ class WorkspaceView extends View
# Deprecated
getActivePane: ->
@getActivePaneView()
# Deprecated: Call {Workspace::getActivePaneItem} instead.
getActivePaneItem: ->
@model.activePaneItem
+90 -31
Ver Arquivo
@@ -7,18 +7,18 @@ Delegator = require 'delegato'
PaneContainer = require './pane-container'
Pane = require './pane'
# Public: Represents the view state of the entire window, including the panes at
# the center and panels around the periphery.
# Public: Represents the state of the user interface for the entire window.
# An instance of this class is available via the `atom.workspace` global.
#
# An instance of this class is always available as the `atom.workspace` global.
# Interact with this object to open files, be notified of current and future
# editors, and manipulate panes. To add panels, you'll need to use the
# {WorkspaceView} class for now until we establish APIs at the model layer.
module.exports =
class Workspace extends Model
atom.deserializers.add(this)
Serializable.includeInto(this)
@delegatesProperty 'activePane', 'activePaneItem', toProperty: 'paneContainer'
@delegatesMethod 'getPanes', 'saveAll', 'activateNextPane', 'activatePreviousPane',
toProperty: 'paneContainer'
@properties
paneContainer: -> new PaneContainer
@@ -49,28 +49,38 @@ class Workspace extends Model
paneContainer: @paneContainer.serialize()
fullScreen: atom.isFullScreen()
# Public: Calls callback for every existing {Editor} and for all new {Editor}s.
# that are created.
# Public: Register a function to be called for every current and future
# {Editor} in the workspace.
#
# callback - A {Function} with an {Editor} as its only argument
# callback - A {Function} with an {Editor} as its only argument.
#
# Returns a subscription object with an `.off` method that you can call to
# unregister the callback.
eachEditor: (callback) ->
atom.project.eachEditor(callback)
# Public: Returns an {Array} of all open {Editor}s.
# Public: Get all current editors in the workspace.
#
# Returns an {Array} of {Editor}s.
getEditors: ->
atom.project.getEditors()
# Public: Asynchronously opens a given a filepath in Atom.
# Public: Open a given a URI in Atom asynchronously.
#
# uri - A {String} uri.
# options - An options {Object} (default: {}).
# :initialLine - A {Number} indicating which line number to open to.
# :split - A {String} ('left' or 'right') that opens the filePath in a new
# pane or an existing one if it exists.
# :changeFocus - A {Boolean} that allows the filePath to be opened without
# changing focus.
# :searchAllPanes - A {Boolean} that will open existing editors from any pane
# if the uri is already open (default: false)
# uri - A {String} containing a URI.
# options - An optional options {Object}
# :initialLine - A {Number} indicating which row to move the cursor to
# initially. Defaults to `0`.
# :split - Either 'left' or 'right'. If 'left', the item will be opened in
# leftmost pane of the current active pane's row. If 'right', the
# item will be opened in the rightmost pane of the current active
# pane's row.
# :activatePane - A {Boolean} indicating whether to call {Pane::activate} on
# the containing pane. Defaults to `true`.
# :searchAllPanes - A {Boolean}. If `true`, the workspace will attempt to
# activate an existing item for the given URI on any pane.
# If `false`, only the active pane will be searched for
# an existing item for the same URI. Defaults to `false`.
#
# Returns a promise that resolves to the {Editor} for the file URI.
open: (uri, options={}) ->
@@ -89,10 +99,20 @@ class Workspace extends Model
@openUriInPane(uri, pane, options)
# Public: Open Atom's license in the active pane.
openLicense: ->
@open(join(atom.getLoadSettings().resourcePath, 'LICENSE'))
# Only used in specs
# Synchronously open the given URI in the active pane. **Only use this method
# in specs. Calling this in production code will block the UI thread and
# everyone will be mad at you.**
#
# uri - A {String} containing a URI.
# options - An optional options {Object}
# :initialLine - A {Number} indicating which row to move the cursor to
# initially. Defaults to `0`.
# :activatePane - A {Boolean} indicating whether to call {Pane::activate} on
# the containing pane. Defaults to `true`.
openSync: (uri='', options={}) ->
{initialLine} = options
# TODO: Remove deprecated changeFocus option
@@ -130,7 +150,8 @@ class Workspace extends Model
.catch (error) ->
console.error(error.stack ? error)
# Public: Reopens the last-closed item uri if it hasn't already been reopened.
# Public: Reopen the last-closed item's URI if it hasn't already been
# reopened.
reopenItemSync: ->
if uri = @destroyedItemUris.pop()
@openSync(uri)
@@ -150,50 +171,88 @@ class Workspace extends Model
registerOpener: (opener) ->
atom.project.registerOpener(opener)
# Public: Remove a registered opener.
# Public: Unregister an opener registered with {::registerOpener}.
unregisterOpener: (opener) ->
atom.project.unregisterOpener(opener)
getOpeners: ->
atom.project.openers
# Public: Returns the active {Pane}.
# Public: Get the active {Pane}.
#
# Returns a {Pane}.
getActivePane: ->
@paneContainer.activePane
# Public: Returns the first pane {Pane} with an item for the given uri or
# undefined if none exists.
# Public: Get all {Pane}s.
#
# Returns an {Array} of {Pane}s.
getPanes: ->
@paneContainer.getPanes()
# Public: Save all pane items.
saveAll: ->
@paneContainer.saveAll()
# Public: Make the next pane active.
activateNextPane: ->
@paneContainer.activateNext()
# Public: Make the previous pane active.
activatePreviousPane: ->
@paneContainer.activatePreviousPane()
# Public: Get the first pane {Pane} with an item for the given URI.
#
# Returns a {Pane} or `undefined` if no pane exists for the given URI.
paneForUri: (uri) ->
@paneContainer.paneForUri(uri)
# Public: save the active item.
# Public: Save the active pane item.
#
# If the active pane item currently has a URI according to the item's
# `.getUri` method, calls `.save` on the item. Otherwise
# {::saveActivePaneItemAs} # will be called instead. This method does nothing
# if the active item does not implement a `.save` method.
saveActivePaneItem: ->
@activePane?.saveActiveItem()
# Public: save the active item as.
# Public: Prompt the user for a path and save the active pane item to it.
#
# Opens a native dialog where the user selects a path on disk, then calls
# `.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()
# Public: destroy/close the active item.
# Public: 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()
# Public: destroy/close the active pane.
# Public: Destroy (close) the active pane.
destroyActivePane: ->
@activePane?.destroy()
# Public: Returns an {Editor} if the active pane item is an {Editor},
# or null otherwise.
# Public: Get the active item if it is an {Editor}.
#
# Returns an {Editor} or `undefined` if the current active item is not an
# {Editor}.
getActiveEditor: ->
@activePane?.getActiveEditor()
# Public: Increase the editor font size by 1px.
increaseFontSize: ->
atom.config.set("editor.fontSize", atom.config.get("editor.fontSize") + 1)
# Public: Decrease the editor font size by 1px.
decreaseFontSize: ->
fontSize = atom.config.get("editor.fontSize")
atom.config.set("editor.fontSize", fontSize - 1) if fontSize > 1
# Public: Restore to a default editor font size.
resetFontSize: ->
atom.config.restoreDefault("editor.fontSize")
+27 -6
Ver Arquivo
@@ -1,8 +1,29 @@
// This file has fallback variables. It specifies the syntax variables that
// themes must implement.
// This file has fallback variables. It specifies all syntax variables that
// themes must implement if they include a syntax-variables.less file.
// Colors
// General colors
@syntax-text-color: #333;
@syntax-cursor-color: #333;
@syntax-selection-color: #69c;
@syntax-background-color: #fff;
@syntax-color-added: #5293d8;
@syntax-color-modified: #f78a46;
@syntax-color-removed: #c00;
// Guide colors
@syntax-wrap-guide-color: #ccc;
@syntax-indent-guide-color: #ccc;
@syntax-invisible-character-color: #ccc;
// For find and replace markers
@syntax-result-marker-color: #444;
@syntax-result-marker-color-selected: #000;
// Gutter colors
@syntax-gutter-text-color: #333;
@syntax-gutter-text-color-selected: #000;
@syntax-gutter-background-color: #ccc;
@syntax-gutter-background-color-selected: #eee;
// For git diff info. i.e. in the gutter
@syntax-color-added: green;
@syntax-color-modified: orange;
@syntax-color-removed: red;
@syntax-color-renamed: blue;
externo
+1 -1
Submodule vendor/apm updated: 90cd546860...9ca4f9ffc7