Comparar commits

...

1979 Commits

Autor SHA1 Mensagem Data
Justin Palmer 4242ef0ae6 spiking out resizable panes 2014-04-04 17:02:24 -07:00
Corey Johnson 7457be2805 Merge pull request #1824 from atom/cj-warn-deprecations
Add deprecation warnings
2014-04-04 15:08:11 -07:00
probablycorey 86842658c0 Use skinny arrows 2014-04-04 14:56:10 -07:00
probablycorey d0276e60b5 Remove periods 2014-04-04 14:52:48 -07:00
Kevin Sawicki 18d6a56e82 Set maxTokensPerLine to 100
Previously this default lived in firs-mate but it belongs here since
it is an Atom limitation to tokenize responsively.
2014-04-04 14:46:42 -07:00
probablycorey 59108322e7 Merge remote-tracking branch 'origin/master' into cj-warn-deprecations
Conflicts:
	package.json
2014-04-04 14:43:54 -07:00
Kevin Sawicki 665088ce27 Prepare 0.85.0 release 2014-04-04 14:39:33 -07:00
Kevin Sawicki 79399a3c5a 💄 Remove extra newline 2014-04-04 14:03:51 -07:00
Kevin Sawicki 4659b95d36 Upgrade to language-coffee-script@0.19.0 2014-04-04 12:05:51 -07:00
Kevin Sawicki bdf73cd198 Merge pull request #1840 from atom/ks-newline-above-indent
Use current indent level for newline above
2014-04-04 10:59:06 -07:00
Kevin Sawicki 6e422d5428 Move cursor to end of line when on first row
This line may be indented now so move the cursor to the
end of the indentation.
2014-04-04 10:47:25 -07:00
Kevin Sawicki e464c4f047 Use current indent level for newline above
Previously Editor::insertNewlineAbove would put the cursor
at position 0 if there were empty lines above the current line
regarding of the indent level of the cursor's current line.

Now the indent level of the current line is always used for the newline
above when the editor.autoIndent config is enabled.
2014-04-04 10:47:25 -07:00
Kevin Sawicki 4610c4446a Upgrade to fuzzy-finder@0.46.0 2014-04-04 10:47:14 -07:00
Kevin Sawicki 156ca14ea6 Upgrade to language-html@0.18.0 2014-04-04 10:15:22 -07:00
Kevin Sawicki cebb27154d Merge pull request #1837 from atom/ks-comment-line-with-only-whitespace
Use cursor indent level if commenting single line
2014-04-04 09:30:05 -07:00
Kevin Sawicki afe6685ce8 Merge pull request #1833 from atom/ks-backspace-on-first-line
Allow backspace to beginning of word on first line
2014-04-04 09:28:51 -07:00
Kevin Sawicki 148e143255 Merge pull request #1832 from atom/ks-dont-save-config-when-setting-defaults
Don't call Config::save when setting defaults
2014-04-04 09:18:24 -07:00
Kevin Sawicki 96d1c84f62 Upgrade to open-on-github@0.26.0 2014-04-04 09:12:48 -07:00
Kevin Sawicki f40ecccdcc Upgrade to markdown-preview@0.59.0 2014-04-03 19:10:23 -07:00
Kevin Sawicki 03b9713547 Upgrade to language-gfm@0.29.0 2014-04-03 19:08:43 -07:00
Kevin Sawicki 9fb364026e Initialize upstream object for all submodules 2014-04-03 18:48:32 -07:00
Kevin Sawicki 1aa64a9d80 Use cursor indent level if commenting single line
Previously commenting a line of all whitespace would insert
the comment at column 0 on the line since blank lines are
ignored when calculating the minimum indent level.
2014-04-03 18:26:50 -07:00
Kevin Sawicki 2ea09aa6b6 Upgrade to status-bar@0.39.0 2014-04-03 17:55:41 -07:00
Kevin Sawicki 76ce150448 Prepare 0.84.0 release 2014-04-03 15:46:07 -07:00
Kevin Sawicki 1d01ff0797 Upgrade to scoped-property-store 0.8 2014-04-03 15:28:54 -07:00
Kevin Sawicki a1d78a1062 Upgrade to first-mate 1.5.1 2014-04-03 14:32:07 -07:00
Kevin Sawicki 3ac41a544a Upgrade to language-coffee-script@0.18.0 2014-04-03 14:07:30 -07:00
Kevin Sawicki 3e24d045e5 Allow backspace to beginning of word on first line
Previously this would fail when only whitespace was to the
left of the cursor.
2014-04-03 12:04:22 -07:00
Kevin Sawicki 143738033b Upgrade to tabs@0.34.0 2014-04-03 11:33:19 -07:00
Kevin Sawicki f153cbb41f Don't call Config::save when setting defaults
Instead just emit an updated event, saving is not needed
because only the defaults are changing.
2014-04-03 11:00:45 -07:00
Kevin Sawicki f1ed5dedd7 Upgrade to settings-view@0.107.0 2014-04-03 10:41:13 -07:00
probablycorey e58c2d8368 Fix WorkSpace typo 2014-04-03 10:37:20 -07:00
probablycorey bcf1781040 Upgrade to grim@0.6.0 2014-04-03 10:17:27 -07:00
probablycorey 0b0dbbe4ee Add window:log-deprecation-warnings command 2014-04-03 10:12:04 -07:00
Kevin Sawicki c9e297a511 Upgrade to markdown-preview@0.58.0 2014-04-03 09:53:42 -07:00
Kevin Sawicki 18082f7cdc Upgrade to language-c@0.14.0 2014-04-03 09:28:08 -07:00
probablycorey ca016ce116 Update Grim 2014-04-03 09:19:02 -07:00
Nathan Sobo bb59e46267 Prepare 0.83.0 release 2014-04-03 10:01:50 -06:00
Nathan Sobo 86c4b99eab Upgrade to emissary@1.2.1 to make memory leaks less likely
This patch version nulls out the Subscription::emitter and ::callback
when subscriptions are cancelled, so even if a reference is retained to
them the resources they formerly referenced are released.
2014-04-03 09:25:08 -06:00
Nathan Sobo a1e1a00f9f Upgrade to whitespace@0.22.0 to fix a memory leak 2014-04-03 09:23:49 -06:00
Kevin Sawicki 53996e7bb0 Upgrade to open-on-github@0.25.0 2014-04-02 17:15:14 -07:00
Kevin Sawicki f88c71e1a1 Upgrade to open-on-github@0.24.0 2014-04-02 17:14:08 -07:00
Kevin Sawicki 2cccbff509 Upgrade to markdown-preview@0.56.0 2014-04-02 17:01:54 -07:00
Kevin Sawicki b173fcdd59 Default workspace classes when array is empty 2014-04-02 16:42:25 -07:00
Corey Johnson 7b6c62ab5e Merge pull request #1826 from atom/cj-workspace-spec
Add atom.workspace to all specs
2014-04-02 16:14:06 -07:00
Kevin Sawicki 809e57cb84 Remove unimplemented about menu 2014-04-02 16:13:45 -07:00
Kevin Sawicki de16ed6250 Remove special handling of Shift modifier
atom-keymap now handles this automatically when
normalizing.
2014-04-02 16:13:38 -07:00
Corey Johnson 606160d312 Use unless 2014-04-02 16:04:14 -07:00
Kevin Sawicki 78e990d1f9 Add minimize/maxmize to AtomWindow 2014-04-02 14:38:20 -07:00
Corey Johnson d47cc6fa0b Remove explicit atom.workspace.destroy call 2014-04-02 14:36:32 -07:00
Kevin Sawicki 8f3951fbd8 Only register first responder handlers on Mac OS X 2014-04-02 14:34:25 -07:00
Kevin Sawicki e09486d425 Upgrade to symbols-view@0.49.0 2014-04-02 14:25:42 -07:00
Corey Johnson 662f252912 Workspace is destroyed automatically 2014-04-02 14:19:27 -07:00
Corey Johnson 784d22368e Remove unneeded ? 2014-04-02 14:19:06 -07:00
Kevin Sawicki a40660d125 Upgrade to symbols-view@0.48.0 2014-04-02 14:18:49 -07:00
Kevin Sawicki af632df48b Upgrade to language-python@0.14.0 2014-04-02 14:16:05 -07:00
Corey Johnson 4a35c9a1af Merge remote-tracking branch 'origin/master' into cj-workspace-spec 2014-04-02 14:09:24 -07:00
Corey Johnson f90f48e3f0 Use atom.workspace if one exists 2014-04-02 14:08:00 -07:00
Kevin Sawicki 9c6a3c3d03 Move editor:transpose to darwin keymap
ctrl-t should be the fuzzy finder on linux.
2014-04-02 14:05:39 -07:00
Kevin Sawicki 4bccb81656 Add 🐧 to CONTRIBUTING.md 2014-04-02 14:03:31 -07:00
Kevin Sawicki 870e80446f 🐧 Remove extra .. for symlink path 2014-04-02 14:02:25 -07:00
Corey Johnson 4165a69fed Change destroy order 2014-04-02 14:02:21 -07:00
Kevin Sawicki 93d9a00819 Delete correct apm symlink when installing 2014-04-02 13:41:44 -07:00
Kevin Sawicki a3789411de Remove symlink before creating a new one 2014-04-02 13:40:33 -07:00
Kevin Sawicki 2b6b40bda7 Upgrade to atom-keymap 0.16.0 2014-04-02 13:28:59 -07:00
Corey Johnson 61ae185494 Create workspace after project 2014-04-02 13:23:50 -07:00
Corey Johnson 0eae68973b Merge pull request #1817 from atom/cj-harmony
Let's go full harmony!
2014-04-02 13:15:53 -07:00
Corey Johnson 6f2695388c Add destroy method 2014-04-02 12:12:56 -07:00
Corey Johnson 0c12f712c9 Add atom.workspace to every spec
We add project to every spec, I'd like to add workspace so that we can
move all the opener logic to workspace.
2014-04-02 12:03:01 -07:00
Corey Johnson 727d1cf4aa Merge remote-tracking branch 'origin/master' into cj-harmony 2014-04-02 11:04:01 -07:00
Corey Johnson 9324b538f7 Upgrade to grim@0.3.0 2014-04-02 10:10:28 -07:00
Kevin Sawicki 5aff4a042b 🐧 Add application:open-dev keybinding 2014-04-02 10:03:06 -07:00
Kevin Sawicki e36bc5bc9f Upgrade to git-utils 1.2.2 2014-04-02 09:44:31 -07:00
Kevin Sawicki 1a88937f5a Upgrade to oniguruma 1.0.6 2014-04-02 09:32:12 -07:00
Kevin Sawicki 5737593957 Merge pull request #1819 from atom/ks-linux
Linux tweaks
2014-04-02 09:08:02 -07:00
Kevin Sawicki d61d8bea86 Only install on darwin 2014-04-02 08:58:34 -07:00
Kevin Sawicki 062974882b Use 755 instead of 777 2014-04-02 08:58:34 -07:00
Kevin Sawicki 8415ddcb49 Upgrade to new icon 2014-04-02 08:58:19 -07:00
Kevin Sawicki 64f392a380 Install commands on linux 2014-04-02 08:58:19 -07:00
Kevin Sawicki fce09f9bfe 🐧 Make /usr/local/share/atom/atom executable 2014-04-02 08:58:19 -07:00
Kevin Sawicki f04ce025f4 🐧 Set permissions to 777 when installing 2014-04-02 08:57:55 -07:00
Kevin Sawicki 57844c2ca4 Upgrade apm for linux download fix 2014-04-02 08:57:55 -07:00
Kevin Sawicki 91433cfe90 git ignore *~ files 2014-04-02 08:57:55 -07:00
Kevin Sawicki 86423698b1 Merge pull request #1822 from atom/cz-linux-keymaps
Add keymaps for modules on Linux
2014-04-02 08:52:05 -07:00
Kevin Sawicki 7dda8e1b80 Upgrade to language-ruby@0.21.0 2014-04-02 08:46:34 -07:00
Nathan Sobo 70cd6a6bc3 💄 Use CoffeeScript :: notation in specs
Going to add another spec on a branch and prefer to stick with our new
convention.
2014-04-02 07:58:48 -06:00
Nathan Sobo 6e9217be5f Reenable disable display-buffer-marker specs 2014-04-02 07:50:24 -06:00
Cheng Zhao 3d8c916a72 🐧 Install apm in deb package. 2014-04-02 18:19:42 +08:00
Cheng Zhao cae9c96622 🐧 Use correct email address for deb package. 2014-04-02 17:53:04 +08:00
Cheng Zhao aaf283ceaa Upgrade to settings-view@0.106.0 2014-04-02 17:51:33 +08:00
Cheng Zhao 4bac60ad94 Upgrade to background-tips@0.10.0 2014-04-02 17:43:40 +08:00
Cheng Zhao cc2e87b784 🐧 Match sublime's quit menu. 2014-04-02 15:14:06 +08:00
Cheng Zhao 363fb0d66e Upgrade to symbols-view@0.47.0 2014-04-02 15:03:04 +08:00
Cheng Zhao 2d2295dcc6 Upgrade to tree-view@0.86.0 2014-04-02 15:02:02 +08:00
Cheng Zhao bf3daeccc5 Upgrade to styleguide@0.28.0 2014-04-02 15:01:36 +08:00
Cheng Zhao 63d5caebbc Upgrade to find-and-replace@0.94.0 2014-04-02 14:55:26 +08:00
Cheng Zhao 3ac3a89fa5 Upgrade to fuzzy-finder@0.45.0 2014-04-02 14:52:12 +08:00
Cheng Zhao af6d7204f9 Upgrade to command-palette@0.20.0 2014-04-02 14:51:20 +08:00
Cheng Zhao 642671161d Merge pull request #1821 from atom/atom-shell-v0.11.5
Upgrade to atom-shell@0.11.5
2014-04-02 06:37:47 +00:00
Cheng Zhao b2fdc25c83 🐧 Hide the 'Install update' menu. 2014-04-02 14:27:03 +08:00
Cheng Zhao 893a3f63dd 🐧 Add arch in the deb package. 2014-04-02 14:26:29 +08:00
Cheng Zhao 271b104120 🐧 Fix normalized menu item label. 2014-04-02 14:26:10 +08:00
Cheng Zhao 247eec44d5 Upgrade to atom-shell@0.11.5 2014-04-02 14:24:30 +08:00
Kevin Sawicki d064c27faf Upgrade to spell-check@0.32.0 2014-04-01 17:56:40 -07:00
probablycorey 8c6ed69176 Upgrade to Grim@0.2.0 2014-04-01 16:59:24 -07:00
probablycorey 56222a072a Add deprecation warnings 2014-04-01 16:59:16 -07:00
Kevin Sawicki 1021979d98 Don't bundle pegjs examples 2014-04-01 16:53:14 -07:00
Kevin Sawicki fcc4376cdd Upgrade to language-php@0.14.0 2014-04-01 16:45:06 -07:00
probablycorey afbf011103 Add Grim dependency 2014-04-01 15:59:54 -07:00
Kevin Sawicki e858f74a17 Upgrade to language-ruby@0.20.0 2014-04-01 15:54:49 -07:00
probablycorey 58dc45d496 Go full harmony!
Using the --harmony flag gives us all of the harmony functionality and it didn't
affect start time (~1360ms for both) or spec run time (~1:10 for both).
2014-04-01 15:31:55 -07:00
Kevin Sawicki 3029dc8d2a Upgrade to settings-view@0.105.0 2014-04-01 15:28:25 -07:00
Nathan Sobo 11d7562c12 Document unset! and native! directives in keymap system 2014-04-01 10:27:35 -06:00
Nathan Sobo b8b95d537b Upgrade to atom-keymaps@0.15.0 for unset! directive 2014-04-01 10:27:21 -06:00
Nathan Sobo 9ec342a545 Merge pull request #1811 from atom/ns-rename-keymap
Refer to files containing key bindings as keymaps instead of the global
2014-04-01 10:25:02 -06:00
Kevin Sawicki cf60b1fde3 Use terser ^ instead of >= < style ranges 2014-04-01 18:11:35 +02:00
Kevin Sawicki 556cdfd300 Upgrade to language-go@0.8.0 2014-04-01 18:11:35 +02:00
Ivan Zuzak c566e7f1f3 use cmd instead of meta in docs 2014-04-01 18:11:23 +02:00
Kevin Sawicki 366312dee8 Upgrade to tabs@0.33.0 2014-03-31 18:13:58 -07:00
probablycorey 1acc6bfadf Upgrade to keybinding-resolver@0.15.0 2014-03-31 17:37:30 -07:00
probablycorey 9fd21ce2e1 Upgrade to keybinding-resolver@0.14.0 2014-03-31 16:54:24 -07:00
Kevin Sawicki 5525e046e9 Upgrade to bracket-matcher@0.29.0 2014-03-31 16:52:55 -07:00
Kevin Sawicki 68e1e36347 Upgrade to settings-view@0.104.0 2014-03-31 16:12:04 -07:00
Nathan Sobo 199a0f7089 Use official atom-keymap@0.14.0 release 2014-03-31 17:00:26 -06:00
Nathan Sobo 65564e2012 Rename atom.keymap to atom.keymaps 2014-03-31 16:28:55 -06:00
Nathan Sobo d612a71af5 Upgrade to atom-keymap@0.14.0 and account for renamed methods 2014-03-31 16:01:31 -06:00
Nathan Sobo 477624387f Upgrade to keymap@0.13.0 for new events 2014-03-31 15:46:15 -06:00
Ben Ogle bf686101dc Upgrade to git-diff@0.27.0 2014-03-31 13:44:29 -07:00
Ben Ogle b348ef633c Upgrade to styleguide@0.27.0 2014-03-31 13:36:29 -07:00
Kevin Sawicki 68022837b4 Upgrade to language-gfm@0.28.0 2014-03-31 13:03:39 -07:00
Kevin Sawicki 537981ff62 Prepare 0.82.0 release 2014-03-31 11:44:52 -07:00
Kevin Sawicki 5bc339afae Relativize path in isSubmodule working dir check
This will handle case insensitive filesystems correctly.
2014-03-31 11:34:06 -07:00
Kevin Sawicki 4e9871a26a Upgrade to git-utils 1.2.1 2014-03-31 11:14:34 -07:00
Nathan Sobo e334d2b640 Upgrade to scoped-property-store@0.7.0 to allow + in scope strings 2014-03-31 11:51:41 -06:00
Kevin Sawicki c7efaef1be Upgrade to bracket-matcher@0.28.0 2014-03-31 10:03:01 -07:00
Kevin Sawicki ad751a1a2a Upgrade to language-ruby@0.19.0 2014-03-31 09:33:37 -07:00
Kevin Sawicki fad21c6d3e Upgrade to fuzzy-finder@0.44.0 2014-03-31 09:08:53 -07:00
Kevin Sawicki 373a7a6d04 Add missing focusedWindow method
This regressed when this code was moved in here in
6d50d05336 and was somehow
still triggereable since it was reported to atom@github.com
2014-03-28 15:55:04 -07:00
Kevin Sawicki 0742909953 Upgrade to settings-view@0.103.0 2014-03-28 15:24:03 -07:00
Kevin Sawicki 25fcd25c32 Prepare 0.81.0 release 2014-03-28 15:05:55 -07:00
probablycorey 0fe4258a44 Upgrade to tabs@0.32.0 2014-03-28 14:25:09 -07:00
probablycorey 0727c8efab Upgrade to language-gfm@v0.27.0 2014-03-28 14:25:09 -07:00
Kevin Sawicki 7198740b26 Merge pull request #1803 from atom/ks-case-insensitive
Fix case insensitive issues with Git
2014-03-28 14:21:08 -07:00
Kevin Sawicki 634a12470b Upgrade to tree-view@0.85.0 2014-03-28 14:02:27 -07:00
Kevin Sawicki 940145be7a Add spec for Git::getDirectoryStatus 2014-03-28 14:01:21 -07:00
Kevin Sawicki fca03552e2 Relativize directory path before checking statuses 2014-03-28 13:54:13 -07:00
Kevin Sawicki f42e880804 Upgrade to fuzzy-finder@0.43.0 2014-03-28 13:51:11 -07:00
Kevin Sawicki 341c474dfa Upgrade to status-bar@0.38.0 2014-03-28 13:49:53 -07:00
Kevin Sawicki c3a1831959 Use Git::getCachedPathStatus in spec 2014-03-28 13:34:21 -07:00
Kevin Sawicki dde1a0b2eb 📝 Add missing the 2014-03-28 13:27:17 -07:00
Kevin Sawicki ecfddc1523 Doc that path is relative to parent repo 2014-03-28 13:21:21 -07:00
Kevin Sawicki 13b59213eb Cached statuses using relative path keys
This added a Git::getCachedPathStatus API to access this data
now that properly relativizes paths to the repository's working
directory.
2014-03-28 13:19:28 -07:00
Kevin Sawicki c0bb3b07c6 Upgrade to git-utils 1.2 2014-03-28 12:47:52 -07:00
Kevin Sawicki c804c5ada3 Upgrade to fs-plus 2.2 2014-03-28 12:47:34 -07:00
Kevin Sawicki 0816e923f9 Upgrade to pathwatcher 1.1.1 2014-03-28 12:47:14 -07:00
Kevin Sawicki 5d30e30a63 Upgrade to language-ruby@0.18.0 2014-03-28 09:46:40 -07:00
Kevin Sawicki 89fdffdfdc Upgrade to settings-view@0.102.0 2014-03-28 09:03:50 -07:00
Corey Johnson 8f089a5ce1 Upgrade to settings-view@0.101.0 2014-03-27 17:31:00 -07:00
Corey Johnson f3bc2310f0 Upgrade to welcome@0.12.0 2014-03-27 17:20:19 -07:00
Corey Johnson bd9cabea75 Upgrade to settings-view@0.100.0 2014-03-27 16:47:57 -07:00
Nathan Sobo 2520b3f85a Merge pull request #1781 from atom/ns-property-selectors
Don't use the DOM to look up scoped properties
2014-03-27 12:04:19 -06:00
Nathan Sobo 22b967adf5 Upgrade to tree-view@0.84.0 hoping to fix the flaky specs 2014-03-27 11:56:43 -06:00
Nathan Sobo cb514d10d5 Upgrade to atom-keymap@0.12.0 to reject invalid bindings and warn 2014-03-27 11:55:52 -06:00
Kevin Sawicki 9e3b67b4b9 Upgrade to language-python@0.13.0 2014-03-27 10:25:25 -07:00
Kevin Sawicki 49556e2aa8 Upgrade to spell-check@0.31.0 2014-03-27 10:18:50 -07:00
Kevin Sawicki 94e70d3f25 Upgrade to language-gfm@0.26.0 2014-03-27 09:55:51 -07:00
Kevin Sawicki 05c47bd3c0 Prepare 0.80.0 release 2014-03-27 09:44:50 -07:00
Cheng Zhao 5b6fe70b7e Ship with hunspell dictionaries on Linux and Windows. 2014-03-27 19:28:26 +08:00
Cheng Zhao 424bf706e9 Upgrade to apm@0.37.0 2014-03-27 16:51:06 +08:00
Kevin Sawicki b1feb9cf2f Upgrade to spell-check@0.30.0 2014-03-26 18:45:10 -07:00
Kevin Sawicki 6948183270 Only add keybindings when command is present 2014-03-26 17:34:09 -07:00
Kevin Sawicki 4aa612e70c Upgrade to language-coffee-script@0.17.0 2014-03-26 16:11:05 -07:00
Corey Johnson d146faae1d Merge pull request #1799 from atom/cj-calculate-invisibles-correctly
Calculate invisibles correctly
2014-03-26 15:58:17 -07:00
Corey Johnson aa02bc1aaf Remove window.debugContent
Whoops!
2014-03-26 14:16:24 -07:00
Corey Johnson f9eb8e3466 Merge remote-tracking branch 'origin/master' into cj-calculate-invisibles-correctly 2014-03-26 14:14:23 -07:00
Kevin Sawicki 18e13cfc3b Upgrade to language-html@0.17.0 2014-03-26 14:02:00 -07:00
Corey Johnson c46238f795 Add spec 2014-03-26 13:57:12 -07:00
Corey Johnson 50e045212b Measure the rendered char width instead of the buffer char
If invisibles are turned on, the buffer char and the rendered char
may differ in size. For example, if `☃` is used as the tab invisible 
its width is probably larger than the width of a `\t`

Closes #1724
2014-03-26 13:57:04 -07:00
Nathan Sobo d5c831c64b Merge branch 'master' of https://github.com/atom/atom into ns-property-selectors 2014-03-26 14:14:29 -06:00
Ivan Žužak 75b355d632 Upgrade to markdown-preview@0.54.0 2014-03-26 19:29:52 +01:00
Corey Johnson dcf4394741 Upgrade to find-and-replace@0.93.0 2014-03-26 09:46:49 -07:00
Kevin Sawicki 36a6ecdd9a Upgrade to bracket-matcher@0.27.0 2014-03-26 09:04:25 -07:00
Cheng Zhao d8dfea00d0 Upgrade to atom-shell@0.11.4 2014-03-26 14:22:05 +08:00
Nathan Sobo 9784d49667 Merge branch 'master' of https://github.com/atom/atom into ns-property-selectors
Conflicts:
	package.json
2014-03-25 21:21:44 -06:00
Kevin Sawicki cb76c698e7 Upgrade to spell-check@0.29.0 2014-03-25 18:37:02 -07:00
Kevin Sawicki 9d2957a7c9 Upgrade to language-html@0.16.0 2014-03-25 18:22:48 -07:00
probablycorey 92a722495b Upgrade to text-buffer@1.4.6 2014-03-25 15:46:54 -07:00
Ben Ogle 30a2e5d902 Upgrade to scandal@0.15.2 2014-03-25 15:38:35 -07:00
Ben Ogle 409d5c7783 Upgrade to git-diff@0.26.0 2014-03-25 14:16:30 -07:00
Kevin Sawicki 9f567051fb Upgrade to underscore-plus 1.1.2 2014-03-25 13:51:40 -07:00
Kevin Sawicki 624c7baf44 Upgrade to settings-view@0.98.0 2014-03-25 13:10:25 -07:00
Kevin Sawicki 2671d8bd46 Upgrade to markdown-preview@0.52.0 2014-03-25 12:56:35 -07:00
Nathan Sobo 8b928d9320 Merge branch 'master' into ns-property-selectors 2014-03-25 13:24:03 -06:00
Kevin Sawicki 27ddcfcbcb Prepare 0.79.0 release 2014-03-25 11:08:06 -07:00
Nathan Sobo 48798dead9 Upgrade to scoped-property-store@0.6.0 for :not pseudoclasses 2014-03-25 12:03:31 -06:00
Kevin Sawicki 0adae86b4d Don't set line height on mini editors 2014-03-25 10:55:32 -07:00
Kevin Sawicki 92283cabfa Prepare 0.78.0 release 2014-03-25 10:27:28 -07:00
Kevin Sawicki a4774ada84 Upgrade to emissary 1.2 2014-03-25 10:00:46 -07:00
Kevin Sawicki e6bcf7ec6e Upgrade to text-buffer 1.4.5 2014-03-25 09:51:05 -07:00
Kevin Sawicki 27ef1f8749 Upgrade to pathwatcher 1.1 2014-03-25 09:50:52 -07:00
Kevin Sawicki 8ee1c2b591 Upgrade to symbols-view@0.46.0 2014-03-25 09:48:29 -07:00
Kevin Sawicki f6f659aec6 Upgrade to snippets@0.40.0 2014-03-25 09:47:44 -07:00
Kevin Sawicki 61372241f7 Upgrade to markdown-preview@0.51.0 2014-03-25 09:46:50 -07:00
Kevin Sawicki d398d89de9 Upgrade to dev-live-reload@0.30.0 2014-03-25 09:45:57 -07:00
Kevin Sawicki af4a2340c4 Upgrade to archive-view@0.30.0 2014-03-25 09:44:53 -07:00
Kevin Sawicki 2d9791d61a Upgrade to language-objective-c@0.11.0 2014-03-25 09:29:46 -07:00
Kevin Sawicki f874ec7cb6 Upgrade to language-ruby@0.17.0 2014-03-25 09:29:46 -07:00
Cheng Zhao 9e4baad701 Merge pull request #1796 from atom/atom-shell-v0.11.3
Upgrade to atom-shell@0.11.3
2014-03-25 12:20:40 +00:00
Cheng Zhao 59b711447c Upgrade to atom-shell@0.11.3 2014-03-25 20:11:28 +08:00
Cheng Zhao 2bb4866e1a Merge pull request #1789 from atom/linux-package
Add task to create .deb package
2014-03-25 07:42:01 +00:00
Cheng Zhao 72ceaf772d 🐧 Use startup notification. 2014-03-25 15:41:00 +08:00
Cheng Zhao 2da9ee0cee 🐧 Add icon file in deb package. 2014-03-25 15:41:00 +08:00
Cheng Zhao 9c070cd71d 🐧 Add desktop file. 2014-03-25 15:40:59 +08:00
Cheng Zhao 6f068f14fd Do not hard code build dir. 2014-03-25 15:40:59 +08:00
Cheng Zhao 67d8db8b9a 🐧 Add mkdeb task to create debian package. 2014-03-25 15:40:59 +08:00
Cheng Zhao 03b9a25897 Add description field to package.json.
It would be used when generating packages.
2014-03-25 15:40:59 +08:00
Cheng Zhao 645fc1511a Do not add parameter in shebang string.
On Linux "#!/usr/bin/env node --harmony_collections" is unfortunately
not recognized by system.
2014-03-25 15:40:43 +08:00
Cheng Zhao ae1d3b1e80 🐧 Search atom from installed position. 2014-03-25 15:40:43 +08:00
Cheng Zhao 627a839779 Fix grunt install. 2014-03-25 15:40:43 +08:00
Cheng Zhao 5151faea3d Use unix style install. 2014-03-25 15:40:43 +08:00
Cheng Zhao eb1bed118f No need to parse args before passing to nslog. 2014-03-25 15:40:43 +08:00
Nathan Sobo fd6476e4d1 Update to underscore-plus@1.1.1 to match scoped-property-store 2014-03-24 19:47:39 -06:00
Nathan Sobo d62b3d5236 Upgrate to tree-view@0.84.0 for flaky spec fix 2014-03-24 19:41:22 -06:00
Nathan Sobo bb6aa5eedb Add deprecated atom.syntax.scopedProperties for settings-view
This is used to determine which snippets apply to the current package.
We should really come up with a different approach, but for now this
preserves compatibility.
2014-03-24 19:22:52 -06:00
Kevin Sawicki e9f4820dd4 Upgrade to symbols-view@0.45.0 2014-03-24 17:17:46 -07:00
Nathan Sobo 6bd73f2647 Upgrade to scoped-property-store@0.4.0 to upgrade underscore-plus
There's something weird going on and I can't figure it out. I feel like
there's a bad version of underscore-plus cached somewhere on CI.
2014-03-24 18:05:46 -06:00
Nathan Sobo d816eca300 Merge branch 'master' into ns-property-selectors 2014-03-24 18:01:44 -06:00
Kevin Sawicki 03d4fdb890 Upgrade to snippets@0.39.0 2014-03-24 16:49:19 -07:00
Nathan Sobo 4aa6e78a4e Use scoped-properties-store for faster property lookup
Previously we were creating DOM elements on every keystroke to look for
certain properties. Now it happens entirely in JavaScript.
2014-03-24 17:45:07 -06:00
Nathan Sobo 7ecb0dcd4b Upgrade to legal-eagle@0.4.0 to accept slick's MIT license 2014-03-24 16:56:27 -06:00
Nathan Sobo 1cdec9386c Modernize serialization docs 2014-03-24 16:19:06 -06:00
Kevin Sawicki ba8f6bccec Upgrade to snippets@0.38.0 2014-03-24 15:13:53 -07:00
Kevin Sawicki 22c8746ed6 Upgrade to status-bar@0.37.0 2014-03-24 14:27:32 -07:00
Nathan Sobo 96503f74e4 Upgrade to atom-keymap@0.11.0 for better native! handling
We weren't clearing the queued keystrokes when aborting partial match
due to encountering a native! binding.
2014-03-24 14:55:35 -06:00
Justin Palmer 7fb3396f65 Merge pull request #1795 from atom/line-height-config
Line height config option
2014-03-24 13:42:41 -07:00
Kevin Sawicki 66fa40b29e Upgrade to language-xml@0.9.0 2014-03-24 13:35:03 -07:00
Kevin Sawicki b5aefc6f5e Upgrade to language-gfm@0.25.0 2014-03-24 12:53:50 -07:00
Justin Palmer cf590685b9 remove lineHeight getter
Nothing is using it and we can add it back once the need arises.
2014-03-24 12:52:01 -07:00
Justin Palmer a604bfcdf1 remove trailing whitespace 2014-03-24 11:42:32 -07:00
Justin Palmer c389bccfa0 update editor view specs to account for lineHeight 2014-03-24 11:37:58 -07:00
Justin Palmer ce02dcf5a5 clarify docs around lineHeight 2014-03-24 11:37:38 -07:00
Justin Palmer d3d38c0312 rename editorLineHeight to lineHeight 2014-03-24 11:28:15 -07:00
Justin Palmer 95d097dd7b 1.3 best represents the previous default line height 2014-03-24 10:59:19 -07:00
Justin Palmer 47f3b562b5 add getter for editorLineHeight 2014-03-24 10:58:58 -07:00
Justin Palmer 5eb12e671b add config option for explicitly setting the editor line height 2014-03-24 10:58:26 -07:00
Kevin Sawicki 023cb2ea55 Prepare 0.77.0 release 2014-03-24 10:54:56 -07:00
probablycorey 98ea42d808 Update docs on window:reloading 2014-03-24 09:38:40 -07:00
probablycorey 4e3a46ee71 Use correct keybinding for window:reload 2014-03-24 09:12:59 -07:00
Cheng Zhao 9ebc5fa30e Merge pull request #1786 from atom/atom-shell-v0.11.2
Upgrade to atom-shell@0.11.2
2014-03-24 09:58:16 +00:00
Cheng Zhao 810ca750cd Upgrade to atom-shell@0.11.2 2014-03-24 17:51:56 +08:00
Nathan Sobo 424652e27c Also ensure editor is *visible* before recalculating dimensions 2014-03-21 17:33:39 -06:00
Nathan Sobo 831beceaac Upgrade to keybinding-resolver@0.12.0 to improve typing performance 2014-03-21 13:58:47 -06:00
Nathan Sobo 2daf026967 Merge pull request #1777 from atom/ns-optimize-editor-rendering
Remove extra reflow and options object allocation from editor view updates
2014-03-21 13:12:54 -06:00
Nathan Sobo dbd6a98bbe Upgrade to atom-keymap@0.10.0 for better 'native!' handling
If a native! binding is encountered, we honor it even if there are
partially matching multi-stroke bindings.
2014-03-21 11:31:57 -06:00
Kevin Sawicki a4ffdeb842 Upgrade to oniguruma 1.0.4 2014-03-21 10:26:37 -07:00
Kevin Sawicki 9b6194c5a4 Upgrade to language-html@0.15.0 2014-03-21 10:11:56 -07:00
Nathan Sobo 8e4573677d Upgrade to atom-dark-ui@0.26.0 for scrollbar styling 2014-03-21 10:48:47 -06:00
Nathan Sobo 61e9befbe7 Favor the most recent matching binding when selecting app menu shortcuts
We sending every binding matching the `body` selector to the browser
process, but it only selects the first. Since we scan the bindings in
chronological order, we need to unshift bindings to the front of the
array so the most recently defined bindings are loaded first.
2014-03-21 10:42:04 -06:00
Kevin Sawicki 0f50c40a93 Upgrade to markdown-preview@0.50.0 2014-03-21 09:34:00 -07:00
Kevin Sawicki 907f8c34ac Upgrade to language-gfm@0.24.0 2014-03-21 09:32:49 -07:00
Kevin Sawicki c178d4c874 Upgrade to apm 0.36.0 2014-03-21 08:29:41 -07:00
Kevin Sawicki 233fd44b01 Upgrade to language-gfm@0.23.0 2014-03-20 17:57:24 -07:00
Kevin Sawicki ab88edaa02 Merge pull request #1774 from atom/ks-support-submodules
Support submodules in Git class
2014-03-20 17:32:16 -07:00
Nathan Sobo 50c25d9e44 Read scrollView width prior to touching the DOM to prevent reflow 2014-03-20 18:02:04 -06:00
Nathan Sobo 9be593d390 Eliminate options object for suppressAutoscroll
It's a single option used only internally. Let's not allocate an object
for it.
2014-03-20 18:02:04 -06:00
Kevin Sawicki 318c43931c Upgrade to git-utils 1.1.1 2014-03-20 17:01:53 -07:00
Kevin Sawicki 244fc33f49 Support submodules inside submodules from isSubmodule 2014-03-20 16:36:10 -07:00
Kevin Sawicki f83f5263a9 💄 Reorder keys 2014-03-20 16:10:10 -07:00
Kevin Sawicki 3266dde2e3 📝 Add missing d 2014-03-20 16:10:10 -07:00
Kevin Sawicki 3428ee335a 💄 2014-03-20 16:10:10 -07:00
Kevin Sawicki db6b4d7b81 Support submodules in more methods 2014-03-20 16:10:10 -07:00
Kevin Sawicki 1c195987c1 Load submodule statuses in handler 2014-03-20 16:10:09 -07:00
Kevin Sawicki 4913714a61 Fall back to root repo for submodule check 2014-03-20 16:10:09 -07:00
Kevin Sawicki 8e2856465c Handle submodules in getDiffStats/isSubmodule 2014-03-20 16:10:09 -07:00
Kevin Sawicki 868c7a3908 Compute status of submodules 2014-03-20 16:10:09 -07:00
Kevin Sawicki afaf91ebde Add path argument to handle submodules correct 2014-03-20 16:10:09 -07:00
Kevin Sawicki c92fe1452b Upgrade to git-utils 1.1 2014-03-20 16:10:09 -07:00
Kevin Sawicki 2bde128fed Make serialization version independent of app version
Previously when deserializing the version of the serialized state
was compared to the app version causing the serialized state be discarded
each time Atom was updated.

Now the cached app version variable is different than the serialization
version allow them to drift accordingly without loss of serialized state.
2014-03-20 16:09:16 -07:00
Kevin Sawicki 89461505b5 Prepare 0.76.0 release 2014-03-20 15:54:42 -07:00
Kevin Sawicki 85df5e61e5 Upgrade to settings-view@0.97.0 2014-03-20 15:22:32 -07:00
Kevin Sawicki 5e477ff984 Upgrade to apm 0.35.0 2014-03-20 15:12:47 -07:00
Kevin Sawicki 2baf9eda61 Upgrade to apm 0.34.0 2014-03-20 15:05:47 -07:00
Kevin Sawicki 7d6d8175b9 Upgrade to apm 0.33.0 2014-03-20 14:57:23 -07:00
Kevin Sawicki 0fdda032cc Guard against interval firing after editor is destroyed 2014-03-20 14:41:16 -07:00
Kevin Sawicki c82d0f8c1c Upgrade to tree-view@0.83.0 2014-03-20 14:39:17 -07:00
Nathan Sobo 65ff108615 Warn and exit if script/bootstrap is run with wrong node version 2014-03-20 13:05:49 -06:00
Nathan Sobo 075611eb65 Don't recalculate dimensions on stylesheet changes for detached editors 2014-03-20 12:19:34 -06:00
Kevin Sawicki b82537b020 Upgrade to git-utils 1.0.1 2014-03-20 10:54:33 -07:00
Kevin Sawicki 06fee4636a Prepare 0.75.0 release 2014-03-20 10:10:40 -07:00
Kevin Sawicki 5fe1af3239 Upgrade to language-ruby-on-rails@0.12.0 2014-03-20 09:26:13 -07:00
Kevin Sawicki bf6cc3d384 Upgrade to tree-view@0.82.0 2014-03-20 09:21:21 -07:00
Kevin Sawicki b4a4ba91b0 Upgrade to settings-view@0.96.0 2014-03-20 09:13:20 -07:00
Kevin Sawicki 271776944a Merge pull request #1769 from atom/bump-apm
update apm submodule to 0.32.0
2014-03-20 09:04:09 -07:00
Nathan Sobo b1d5a3d75f Merge pull request #1772 from atom/ns-update-editor-dimensions
Update editor properly when line height or char width change via a stylesheet
2014-03-20 10:01:08 -06:00
Nathan Sobo bd68790a10 Cleanup stylesheets added during spec in afterEach 2014-03-19 21:51:08 -06:00
Nathan Sobo f0a7663447 Recalculate line-height and char-width when stylesheets change
If either of these dimensions change, we request a display update for
the editor.
2014-03-19 21:37:26 -06:00
Kevin Sawicki db627d65c7 Upgrade to language-html@0.14.0 2014-03-19 18:18:25 -07:00
Cheng Zhao a9f581797a Upgrade to minidump@0.5.x
This will generate symbols from .dSYM file if we have one.
2014-03-20 09:14:42 +08:00
Kevin Sawicki 763291230d Upgrade to bookmars@0.22.0 2014-03-19 17:49:26 -07:00
Kevin Sawicki 55a77a34bd Upgrade to language-gfm@0.22.0 2014-03-19 17:47:26 -07:00
Kevin Sawicki f4f975c6b7 Upgrade to image-view@0.32.0 2014-03-19 16:33:03 -07:00
Nathan Sobo 2d26382510 Emit 'stylesheet-changed' from atom.themes
Whenever stylesheets are applied or removed.
2014-03-19 15:51:36 -06:00
Kevin Sawicki c5cd56a99e Upgrade to language-toml@0.12.0 2014-03-19 14:50:25 -07:00
Nathan Sobo 24943dd526 Avoid sending arguments object to child process.
The arguments variable is not a real array, and gets screwed up when
sending it to the child process. This updates it to send an array
instead.

Thanks to @lackac!

Refs atom/terminal#23.
2014-03-19 15:40:35 -06:00
Kevin Sawicki 8b32e30ee7 Upgrade to language-todo@0.9.0 2014-03-19 14:37:22 -07:00
Kevin Sawicki 72c99be0f2 Upgrade to whitespace@0.21.0 2014-03-19 14:26:59 -07:00
Kevin Sawicki 10ac1f6ae8 Upgrade to language-gfm@0.21.0 2014-03-19 14:05:44 -07:00
Kevin Sawicki 524170534c Upgrade to language-gfm@0.20.0 2014-03-19 13:32:05 -07:00
Kevin Sawicki d542f35336 Upgrade to fuzzy-finder@0.42.0 2014-03-19 10:56:09 -07:00
Kevin Sawicki 697ba53c6b Upgrade to settings-view@0.95.0 2014-03-19 10:50:51 -07:00
Kevin Sawicki 148a8bad2e Merge pull request #1771 from atom/ks-dont-trim-leading-whitespace-on-newline
Ignore leading whitespace when auto-indenting a newline
2014-03-19 10:24:05 -07:00
Daniel Hengeveld 7a344b91aa update apm submodule to 0.32.0 2014-03-19 10:15:50 -07:00
Kevin Sawicki 5783350484 📝 Tweak option comment 2014-03-19 10:06:10 -07:00
Kevin Sawicki 9fce23d5ac Update option to preserveLeadingWhitespace 2014-03-19 10:05:34 -07:00
Kevin Sawicki 7c17c99b9e Update spec description 2014-03-19 10:05:34 -07:00
Kevin Sawicki ff560bc3a3 Update spec to not be before whitespace 2014-03-19 10:05:34 -07:00
Kevin Sawicki 61f01f4713 📝 Add through 2014-03-19 10:05:34 -07:00
Kevin Sawicki 2e8c0234bb Tweak spec description 2014-03-19 10:05:34 -07:00
Kevin Sawicki 8e62d772b3 Ignore leading whitespace when auto-indenting a newline
Refs atom/language-less#1
2014-03-19 10:05:34 -07:00
Kevin Sawicki 532cfb5775 Upgrade to tree-view@0.81.0 2014-03-19 09:19:56 -07:00
Kevin Sawicki f912eb805d Add npm as build dependency
This switches script/bootstrap to use a locally installed npm so that
the version of npm being used to bootstrap apm is now managed in
build/package.json instead of whatever version is installed globally on the
machine running script/bootstrap.

Closes #1770
2014-03-19 08:41:08 -07:00
Cheng Zhao 6838ff8ea2 Merge pull request #1762 from atom/linux-build
Make Atom build on Linux
2014-03-19 01:40:11 +00:00
Kevin Sawicki 8aa2c40bbf Don't capture whitespace group in comment patterns
This was causing corruption when uncommenting XML since the fact that
it was being captured was throwing off the index used into the match.

Closes atom/language-xml#3
2014-03-18 18:19:59 -07:00
Kevin Sawicki c2d603769e Upgrade to language-hyperlink@0.9.0 2014-03-18 17:29:50 -07:00
Nathan Sobo 3710d85e63 Upgrade to atom-keymap@0.9.0 to improve pending mode timeout behavior 2014-03-18 18:12:41 -06:00
Kevin Sawicki 12a72302d9 Upgrade to bracket-matcher@0.26.0 2014-03-18 09:41:35 -07:00
Kevin Sawicki 2c70f0dc27 Upgrade to language-html@0.13.0 2014-03-18 09:05:27 -07:00
Kevin Sawicki 6165c65a51 Upgrade to language-todo@0.8.0 2014-03-18 09:02:48 -07:00
Kevin Sawicki 3ea3f64214 Upgrade to language-php@0.13.0 2014-03-18 09:01:37 -07:00
Cheng Zhao 08601d32a3 Upgrade to atom-shell@0.11.1 2014-03-18 17:57:34 +08:00
Cheng Zhao 0ae1f6858c Upgrade to apm@0.31.0 2014-03-18 17:02:31 +08:00
Cheng Zhao f2e5b480e1 Fix specs on Mac. 2014-03-18 16:32:34 +08:00
Cheng Zhao 19ab197bc1 🐧 Make atom.sh work. 2014-03-18 16:27:43 +08:00
Cheng Zhao 8bf1464b64 Fix setting NODE_PATH in specs window. 2014-03-18 15:57:16 +08:00
Cheng Zhao 0ee3421cbc Merge branch 'master' into linux-build 2014-03-18 15:54:52 +08:00
Cheng Zhao a18536e8a4 🐧 Add keymap. 2014-03-18 15:51:13 +08:00
Cheng Zhao cc2e1eecd3 Still set NODE_PATH since tasks may need it. 2014-03-18 15:38:57 +08:00
Cheng Zhao 87b95128f9 Do not rely on NODE_PATH env. 2014-03-18 15:34:24 +08:00
Cheng Zhao 344a56b47a 🐧 Add menu. 2014-03-18 14:12:25 +08:00
Cheng Zhao da8d055817 🐧 Quit when all windows are closed. 2014-03-18 14:09:43 +08:00
Nathan Sobo c07272633f Merge pull request #1760 from atom/ns-extract-keymap
Extract and improve Keymap
2014-03-17 22:40:38 -06:00
Nathan Sobo b26e0d42d5 Merge branch 'master' into ns-extract-keymap 2014-03-17 22:28:14 -06:00
Nathan Sobo 8ee4e927a1 Unspy setTimeout in an attempt to fix flaky spec 2014-03-17 22:27:26 -06:00
Cheng Zhao 7eaa3cb2b6 Upgrade to grunt-download-atom-shell@0.6.1 2014-03-18 12:24:22 +08:00
Cheng Zhao 696928540c Upgrade to keytar@1.x 2014-03-18 12:18:08 +08:00
Cheng Zhao b33f36d30a Update apm: Fix keytar on Linux. 2014-03-18 12:17:20 +08:00
Nathan Sobo 179b392a49 Merge branch 'master' into ns-extract-keymap 2014-03-17 21:59:20 -06:00
Nathan Sobo 857f19c382 Upgrade to image-view@0.31.0 to fix flakey spec 2014-03-17 21:58:21 -06:00
Nathan Sobo 8a333208a2 Upgrade to atom-keymap@0.8.0 2014-03-17 13:51:25 -06:00
Nathan Sobo ff23f62c3e Move jQuery.Event::abortKeyBinding to keymap-extensions 2014-03-17 13:05:47 -06:00
Nathan Sobo dcdc9d6b90 Construct Keymap with options object 2014-03-17 13:05:47 -06:00
Nathan Sobo 3d28f957c7 Export Keymap from keymap-extensions 2014-03-17 13:05:47 -06:00
Nathan Sobo 2eb2aa5bef Rename season variable to CSON for consistency 2014-03-17 13:05:46 -06:00
Nathan Sobo 371820fd59 Use ^ prefix for pathwatcher dependency 2014-03-17 13:05:46 -06:00
Nathan Sobo 596c584ef1 Add atom-keymap classes to the docs grunt task 2014-03-17 13:05:46 -06:00
Nathan Sobo 27a1577021 Upgrade to atom-keymap@0.6.0 for bug fixes 2014-03-17 13:05:46 -06:00
Nathan Sobo 8f2745c248 Remove old keymap-spec. It has been supplanted by the atom-keymap npm 2014-03-17 13:05:46 -06:00
Nathan Sobo 1c964d05f8 💄 spec helper's keydownEvent 2014-03-17 13:05:46 -06:00
Nathan Sobo 2dcbf7f751 Replace Keymap subclass with keymap-extensions 2014-03-17 13:05:46 -06:00
Nathan Sobo 067f73da38 Defend against jQuery-wrapped targets in keydownEvent spec helper 2014-03-17 13:05:46 -06:00
Nathan Sobo ae324c13a6 Upgrade to atom-keymap@0.5.0 to support keybinding resolver 2014-03-17 13:05:46 -06:00
Nathan Sobo 9a488adbb9 Suggest people bind to .workspace instead of body 2014-03-17 13:05:46 -06:00
Nathan Sobo 4c0f1efec6 Set the keymap default target to atom.workspaceView's DOM element 2014-03-17 13:05:46 -06:00
Nathan Sobo 8974cb5f34 Make a quick and dirty subclass of the Keymap from the npm 2014-03-17 13:05:46 -06:00
Nathan Sobo cb303a3149 Depend on atom-keymap npm and a compatible pathwatcher version 2014-03-17 13:05:45 -06:00
Kevin Sawicki c44628a5b1 Upgrade to language-ruby-on-rails@0.11.0 2014-03-17 11:52:17 -07:00
Kevin Sawicki fb1effc654 Upgrade to language-html@0.12.0 2014-03-17 11:50:17 -07:00
Kevin Sawicki 5ab213b854 Upgrade to language-javascript@0.21.0 2014-03-17 10:34:47 -07:00
Kevin Sawicki bbf738635c Upgrade to language-php@0.12.0 2014-03-17 10:27:07 -07:00
Cheng Zhao 705d3e9fbc Do not run grunt install on Linux by default.
On Linux we usually separate build from install, and only run install
with sudo when needed.
2014-03-17 07:44:58 +00:00
Cheng Zhao 6bd3728548 Fix grunt on Linux. 2014-03-17 07:28:36 +00:00
Cheng Zhao 7d997f6d9a Use multi-platform-node branch of apm. 2014-03-17 04:11:31 +00:00
Cheng Zhao e919eb3eba Upgrade to atom-shell@0.11.0 2014-03-16 14:05:06 +00:00
Nathan Sobo c2b2096c8c Merge pull request #1761 from atom/enable_graphics_switching
Enable automatic graphics switching
2014-03-15 19:17:52 -06:00
Lincoln Stoll 46638d2ea1 Enable automatic graphics switching 2014-03-15 19:24:40 +01:00
Kevin Sawicki fdb08517d3 Prepare 0.74.0 release 2014-03-14 09:37:27 -07:00
Kevin Sawicki f272962562 Upgrade to settings-view@0.94.0 2014-03-14 09:14:50 -07:00
Kevin Sawicki 9e661d8a99 Upgrade to find-and-replace@0.92.0 2014-03-13 18:23:40 -07:00
Kevin Sawicki 43c0b79273 Upgrade to tabs@0.31.0 2014-03-13 18:01:44 -07:00
Corey Johnson 96e96c3c7f Merge pull request #1757 from atom/cj-shhhhh
Don't show error messages for version and help cli options
2014-03-13 17:42:19 -07:00
probablycorey 15c51b4417 Redirect help and version stderr to /dev/null
Closes #1580 based on @zcbenz's suggestion.
2014-03-13 15:00:24 -07:00
Kevin Sawicki 6c93ca0e42 Prepare 0.73.0 2014-03-13 14:52:47 -07:00
probablycorey a3cb98a3d3 Shorten the spec-directory description 2014-03-13 14:38:05 -07:00
Kevin Sawicki 31ecd39f08 Don't echo app location 2014-03-13 12:41:08 -07:00
probablycorey 4d986b8417 Upgrade to image-view@0.30.0 2014-03-13 11:48:04 -07:00
Kevin Sawicki 2d14c06089 Merge pull request #1756 from atom/ks-mousemove-out-of-control
Stop out of control mouse move listener
2014-03-13 11:36:10 -07:00
Corey Johnson 7746ad0b13 Merge pull request #1753 from atom/cj-fixup-shell-script
Don't assume Atom is in /Applications when using the CLI
2014-03-13 11:26:16 -07:00
probablycorey 1cbaf8d1f5 Added comments because shell scripts can be confusing 2014-03-13 11:14:26 -07:00
Kevin Sawicki cb41e2c41a Remove unneeded do -> block 2014-03-13 11:00:24 -07:00
probablycorey 2fd71f2fa8 Use mdfind to locate Atom.app if it isn't in /Applications 2014-03-13 10:57:55 -07:00
Kevin Sawicki 37d67e8a83 Add spec for dragging with editor hidden 2014-03-13 10:56:31 -07:00
Kevin Sawicki 2f8e67d679 Add event.which to 1 in more specs 2014-03-13 10:49:34 -07:00
Kevin Sawicki 22dc165a25 Set event.which to 1 in specs 2014-03-13 10:47:03 -07:00
Kevin Sawicki ebfe50aafc Keep mouse move handler from going out of control
Previously the editor could be hidden and the mouse move handler
would start logging errors since it will still trying to compute
positions based on the move events still firing on the document.

Now the display property is checked in the handler and also the selection
is finalized when a move event occurs and the button is no longer pressed.

Closes #1755
2014-03-13 10:33:18 -07:00
Kevin Sawicki de58936ed1 Upgrade to settings-view@0.93.0 2014-03-13 10:03:45 -07:00
Kevin Sawicki eba2abd5d9 📝 Doc save, saveAs, and getPath as public 2014-03-13 09:21:06 -07:00
Kevin Sawicki 864ab0c095 Use file path in save as dialog
Previously the dirname of the file path was used which caused the
save dialog to not be filled in with the current file name

Closes #1748
2014-03-12 18:41:50 -07:00
Kevin Sawicki de3d424f51 Map cmd-shift-backspace to editor:backspace-to-beginning-of-line
Closes #1752
2014-03-12 18:16:52 -07:00
Kevin Sawicki 68c2c18d83 Don't allow the tab length to go below 1
Closes #1751
2014-03-12 18:00:11 -07:00
probablycorey 54907455fe Add ~/Desktop 2014-03-12 17:44:00 -07:00
probablycorey ba8ab21a0d Search for the Atom app in the usual locations when using the atom cli
Sorta closes #1595
2014-03-12 17:10:36 -07:00
Corey Johnson f272d9abde Upgrade to solarized-dark-syntax@0.14.0 2014-03-12 14:00:39 -07:00
Corey Johnson 972f194388 Upgrade to tree-view@0.80.0 2014-03-12 13:44:15 -07:00
Kevin Sawicki adb2f31e7f Kill associated processes on will-quit
Previously processes were only killed when the window was destroyed.

This affected `atom --wait` when using cmd-q to quit the app.

Closes #1679
2014-03-12 12:51:47 -07:00
Corey Johnson ccfd239ad1 Upgrade to autosave@0.13.0 2014-03-12 11:28:36 -07:00
Kevin Sawicki 6fc56b9372 Upgrade to language-coffee-script@0.16.0 2014-03-12 11:27:21 -07:00
Kevin Sawicki 9072a6da7a Upgrade to language-javascript@0.20.0 2014-03-12 11:24:11 -07:00
Kevin Sawicki d39547097c Upgrade to symbols-view@0.44.0 2014-03-12 11:22:48 -07:00
Kevin Sawicki 3b2f58fa22 Upgrade to symbols-view@0.43.0 2014-03-12 10:34:27 -07:00
Kevin Sawicki cbddc4eb6f Revert "Upgrade to language-php@0.12.0"
This reverts commit 96a0c1039a.
2014-03-12 10:34:13 -07:00
Kevin Sawicki 96a0c1039a Upgrade to language-php@0.12.0 2014-03-12 10:33:46 -07:00
Kevin Sawicki 1390bef626 Upgrade apm to v0.30.0 2014-03-12 10:30:58 -07:00
Kevin Sawicki e70a2ab3de Upgrade to language-ruby@0.16.0 2014-03-12 10:11:20 -07:00
Kevin Sawicki e0d1bdc072 Upgrade to language-todo@0.7.0 2014-03-12 10:07:18 -07:00
Kevin Sawicki 79c60d3884 Upgrade to language-php@0.11.0 2014-03-12 09:59:29 -07:00
Kevin Sawicki 1e85bc66b4 Upgrade to language-javascript@0.19.0 2014-03-12 09:58:53 -07:00
Kevin Sawicki 0d633a1e27 Upgrade to fs-plus 2.0.4 2014-03-12 09:55:21 -07:00
Kevin Sawicki 0759f6a1fd Upgrade to whitespace@0.20.0 2014-03-12 09:35:21 -07:00
Nathan Sobo 99b5675c4e Ensure position is a Point in Selection::selectToPosition
Fixes #1750
2014-03-11 20:42:42 -06:00
Nathan Sobo 4f7957183c Upgrade to text-buffer@1.4.4 to fix problems serializing MarkerPatches 2014-03-11 20:35:01 -06:00
Kevin Sawicki 2de18d3c4d 📝 Add examples for atom.workspaceView 2014-03-11 18:23:59 -07:00
Kevin Sawicki fecf13e2df Upgrade to text-buffer 1.4.3 2014-03-11 18:11:01 -07:00
Kevin Sawicki 31e44d50e4 Upgrade to symbols-view@0.42.0 2014-03-11 17:34:29 -07:00
Kevin Sawicki c28aeeac4a Upgrade to snippets@0.37.0 2014-03-11 17:33:31 -07:00
Kevin Sawicki 5649de6cd1 Upgrade to markdown-preview@0.49.0 2014-03-11 17:25:59 -07:00
Kevin Sawicki 26a649abda Upgrade to dev-live-reload@0.29.0 2014-03-11 17:24:07 -07:00
Kevin Sawicki 3b02ae1ce9 Upgrade to archive-view@0.29.0 2014-03-11 17:21:39 -07:00
Kevin Sawicki 13278c3d40 Upgrade to whitespace@0.19.0 2014-03-11 17:16:58 -07:00
Kevin Sawicki 17760a458a Upgrade to pathwatcher@0.19.0 2014-03-11 16:53:36 -07:00
Kevin Sawicki 282814fe59 Upgrade to archive-view@0.28.0 2014-03-11 16:36:56 -07:00
Kevin Sawicki 35fb02fce9 Upgrade to pathwatcher@0.18.0 2014-03-11 16:28:22 -07:00
Kevin Sawicki 7286c339c8 Upgrade to first-mate 1.4.2 2014-03-11 16:22:54 -07:00
Kevin Sawicki b956fa4d1f Upgrade to fuzzy-finder@0.41.0 2014-03-11 16:15:30 -07:00
Kevin Sawicki 8cb66895f0 Check that activations events are present
Having an empty array, object, or string will now be treated
as no activation events.

This was reported as being confusing since people were just clearing
the array generated by the package generator but their packages weren't
activating.
2014-03-11 16:15:30 -07:00
probablycorey 3a9584b840 Upgrade to tree-view@0.79.0 2014-03-11 15:48:21 -07:00
Kevin Sawicki 5d20a518ae Upgrade to first-mate 1.4.1 2014-03-11 14:30:35 -07:00
Kevin Sawicki bd3dc453ef Wrap command line arguments in quotes
Closes #1639
2014-03-11 13:35:19 -07:00
Kevin Sawicki 151d22c325 Destroy items on pane:close
Previously pane:close would do nothing because of the guards in
Pane::destroy.

Also renames the menu to Close Pane to be more accurate.

Closes #1686
2014-03-11 13:22:03 -07:00
Kevin Sawicki d6433a67c8 Incluse JavaScript specs when loading suite
Closes #1615
2014-03-11 13:01:28 -07:00
Kevin Sawicki be561f0e5e 📝 Update styleguide keybinding
Closes #1628
2014-03-11 12:29:23 -07:00
Kevin Sawicki 1f6d90319b Upgrade to settings-view@0.92.0 2014-03-11 12:20:12 -07:00
Kevin Sawicki eca63364a6 Upgrade to find-and-replace@0.91.0 2014-03-11 12:20:12 -07:00
Nathan Sobo 38f25160d6 Upgrade to q@1.0.1, which doesn't need loophole to avoid CSP errors 2014-03-11 13:18:56 -06:00
Kevin Sawicki 28ce023164 Upgrade to setting-view@0.91.0 2014-03-11 11:39:14 -07:00
Kevin Sawicki 10b3d56682 Upgrade to oniguruma 1.0.3 2014-03-11 11:30:27 -07:00
probablycorey 945011f9e3 Add data to the same jquery object that is appended to the list.
Closes #1747
2014-03-11 11:20:03 -07:00
Nathan Sobo d7c6cd68b9 Merge pull request #1741 from atom/cz-first-responder-menu
Send command to first responder when no window is focused
2014-03-11 11:10:36 -06:00
Cheng Zhao ed4c3fde2d Merge pull request #1742 from atom/atom-shell-v0.10.7
Upgrade to atom-shell@0.10.7
2014-03-11 14:21:43 +00:00
Cheng Zhao c5db1c33a0 Upgrade to atom-shell@0.10.7 2014-03-11 22:12:59 +08:00
Cheng Zhao d719ea74dd Send command to first responder when no window is focused. 2014-03-11 15:31:54 +08:00
Kevin Sawicki 996defaadb Merge pull request #1740 from atom/ks-cson-safe-grunt
Safe CSON during build
2014-03-10 18:56:36 -07:00
Kevin Sawicki 86cd7f7a01 Handle non-integer indentation level values
This was already occurring when using hard tabs but soft tabs still
had issues.

Refs atom/language-c#7
2014-03-10 18:45:18 -07:00
Kevin Sawicki a79090c65a Unfocus spec 2014-03-10 18:43:38 -07:00
Kevin Sawicki 86c720af81 Normalize all tabs, not just the first one
Refs atom/language-javascript#10
2014-03-10 17:57:10 -07:00
Ben Ogle a9becd5cc8 Upgrade to solarized-dark-syntax@0.13.0 2014-03-10 17:52:38 -07:00
Kevin Sawicki 1e327699b8 Upgrade to grunt-cson@0.8.0 2014-03-10 17:24:32 -07:00
Nathan Sobo 0ba9425bb6 Upgrade to archive-view 0.27.0 to suppress CSP errors requiring 'q'
archive-view indirectly depends on a different version of 'q' and so it
isn't requiring the deduped version that already has its warnings
suppressed in atom.coffee.
2014-03-10 17:06:12 -06:00
probablycorey 7d19b839d9 Upgrade to metrics@0.32.0 2014-03-10 13:16:01 -07:00
probablycorey e1a9f0a533 Upgrade to metrics@0.31.0, again 2014-03-10 12:14:29 -07:00
Kevin Sawicki f6d0051446 Prepare 0.72.0 release 2014-03-10 11:46:37 -07:00
Kevin Sawicki 126df1fa03 Upgrade to tree-view@0.78.0 2014-03-10 11:18:56 -07:00
Kevin Sawicki 0a72d9539f Upgrade to atom-dark-ui@0.25.0 2014-03-10 11:13:08 -07:00
Kevin Sawicki 60ecbe054e Upgrade to wrap-guide@0.18.0 2014-03-10 11:02:43 -07:00
Kevin Sawicki 5a3fa18863 Upgrade to atom-light-syntax@0.16.0 2014-03-10 10:53:55 -07:00
probablycorey bea4f2abde Revert "Upgrade to metrics@0.31.0"
This reverts commit c80d3eea47.

Conflicts:
	package.json
2014-03-10 10:44:11 -07:00
Ivan Žužak 3fc2ca3d77 Merge pull request #1738 from atom/izuzak/upgrade-underscore-plus
Upgrade to underscore-plus@1.0.5
2014-03-10 18:34:34 +01:00
Kevin Sawicki 29fcc4727a Upgrade to language-javascript@0.18.0 2014-03-10 10:34:33 -07:00
Kevin Sawicki ddb973b03a Upgrade to markdown-preview@0.48.0 2014-03-10 10:23:39 -07:00
Kevin Sawicki c2b05f9956 Upgrade to tabs@0.30.0 2014-03-10 10:10:25 -07:00
Ivan Žužak 7fd452102f Upgrade to underscore-plus@1.0.5
See: https://github.com/atom/underscore-plus/commit/31c7cb6d50922a5237523f1282f0607679eff563
2014-03-10 18:09:03 +01:00
probablycorey c80d3eea47 Upgrade to metrics@0.31.0 2014-03-10 09:42:14 -07:00
Nathan Sobo 8421edbb72 Upgrade find-and-replace to 0.90.0 to avoid security policy exceptions 2014-03-10 10:40:59 -06:00
Kevin Sawicki 03587f54be Upgrade to tree-view@0.77.0 2014-03-10 09:39:38 -07:00
Kevin Sawicki dac7760018 Upgrade to atom-light-ui@0.23.0 2014-03-10 09:21:32 -07:00
Kevin Sawicki bd28d5d7b1 Upgrade to atom-dark-ui@0.24.0 2014-03-10 09:18:49 -07:00
Kevin Sawicki 34df19b204 Prepare 0.71.0 release 2014-03-10 09:06:17 -07:00
Kevin Sawicki 6e824dadf2 Upgrade to tabs@0.29.0 2014-03-10 08:52:35 -07:00
Cheng Zhao c50cfc1714 Upgrade to pathwatcher@0.17.0 2014-03-10 12:13:50 +08:00
Nathan Sobo d0fcd573bd Merge pull request #1702 from atom/enable-csp
initial attempt at CSP policy to see what breaks
2014-03-08 02:20:22 +02:00
Nathan Sobo 79089ced97 💄 whitespace 2014-03-07 17:19:53 -07:00
Nathan Sobo aa6811a088 Upgrade to loophole@0.3.0 for bugfix 2014-03-07 17:13:11 -07:00
Nathan Sobo dd27a35039 Silence CSP warnings from q's feature detection 2014-03-07 17:01:51 -07:00
Kevin Sawicki f3b696c5ec Upgrade to status-bar@0.36.0 2014-03-07 15:57:21 -08:00
Nathan Sobo 8405041f64 Merge branch 'master' into enable-csp
Conflicts:
	package.json
2014-03-07 16:46:00 -07:00
probablycorey a372993c44 Only listen of update events once when checking for update. 2014-03-07 15:39:44 -08:00
Nathan Sobo 909e0d7312 Remove defunct 'autoIndentOnPaste' option from customizing-atom docs 2014-03-07 13:39:36 -07:00
Kevin Sawicki e8503f7ddc Upgrade to tree-view@0.76.0 2014-03-07 12:02:08 -08:00
Kevin Sawicki 42a6caf7dc Upgrade to tree-view@0.75.0 2014-03-07 11:34:47 -08:00
Nathan Sobo eaffb12ffb Upgrade to text-buffer@1.4.2 to honor persistent: true marker param 2014-03-07 12:20:15 -07:00
Kevin Sawicki 105e0d3c82 Upgrade to tabs@0.28.0 2014-03-07 11:10:22 -08:00
Kevin Sawicki 534a36c7e1 Upgrade to settings-view@0.90.0 2014-03-07 11:08:07 -08:00
Cheng Zhao b5b8f757b2 Merge pull request #1728 from atom/atom-shell-v0.10.6
Upgrade to atom-shell@0.10.6
2014-03-07 14:11:24 +00:00
Cheng Zhao 10e3dfbfdb Upgrade to atom-shell@0.10.6 2014-03-07 22:05:09 +08:00
Nathan Sobo bfdcbbe9f1 Upgrade to snippets@0.36.0 for CSP support in dev-mode 2014-03-06 19:19:04 -07:00
Nathan Sobo 5d49839236 Don't require loophole unless we need it. Won't happen in production. 2014-03-06 19:13:27 -07:00
Nathan Sobo e6508237e7 Merge pull request #1710 from atom/ns-duplicate-multiple-lines
Handle multiple lines and multiple selections with the editor::duplicate-lines command
2014-03-07 04:01:59 +02:00
Nathan Sobo 2d4797c84e Define allowUnsafeEval in an npm module 2014-03-06 18:56:09 -07:00
Nathan Sobo 392516e60f Delegate activateNextPane correctly 2014-03-06 18:32:24 -07:00
Nathan Sobo d09a2d0772 Merge branch 'master' into ns-duplicate-multiple-lines
Conflicts:
	package.json
2014-03-06 18:16:48 -07:00
Nathan Sobo 2bd5c10f09 Merge branch 'master' into enable-csp 2014-03-06 18:14:25 -07:00
Nathan Sobo 5c910113a3 Depend on text-buffer 1.4.1 since there was a regression in 1.4.0 2014-03-06 18:10:32 -07:00
Kevin Sawicki c591a2e098 Upgrade to language-javascript@0.17.0 2014-03-06 16:26:12 -08:00
Kevin Sawicki b5acc9b093 Upgrade to language-css@0.13.0 2014-03-06 16:17:42 -08:00
Kevin Sawicki 5b6f8ff0f6 Upgrade to wrap-guide@0.17.0 2014-03-06 15:59:03 -08:00
Kevin Sawicki d530d0a4d5 Upgrade to language-html@0.11.0 2014-03-06 15:36:05 -08:00
Kevin Sawicki 211ce4b2d3 Prepare 0.70.0 release 2014-03-06 15:21:34 -08:00
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
Nathan Sobo b9b3d021cc Add private method docs to DisplayBuffer::outermostFoldsInBufferRange 2014-03-06 15:31:14 -07:00
Nathan Sobo 6e202e18d8 💄 more comment formatting 2014-03-06 15:29:25 -07: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
Nathan Sobo da85a07dae 💄 comment formatting 2014-03-06 15:17:34 -07:00
Corey Johnson 01851523a0 Upgrade to text-buffer@1.4.0 2014-03-06 14:13:06 -08:00
Nathan Sobo eda744f07f Pluralize "Duplicate Lines" menu item 2014-03-06 14:55:15 -07:00
Nathan Sobo 4acfe11af1 Remove previous duplicate-line specs from editor-view-spec 2014-03-06 14:49:20 -07:00
Nathan Sobo 85824c5df6 Handle last buffer line in Editor::duplicateLines 2014-03-06 14:48:52 -07:00
Nathan Sobo 20a0c27111 Rename duplicate-line to duplicate-lines (but retain deprecated method)
Might as well make the name accurate while it's early.
2014-03-06 14:36:25 -07:00
Nathan Sobo 76200884d5 Preserve folds when duplicating lines 2014-03-06 13:16:16 -07:00
Nathan Sobo ce4ce55b29 Make outermostFoldsForBufferRowRange exclusive of end row 2014-03-06 12:52:27 -07:00
Nathan Sobo 66f6e38788 Fix ::translateToBufferMarkerAttributes reference 2014-03-06 12:42:16 -07:00
Nathan Sobo d97a0a3324 Add DisplayBuffer::outermostFoldsInBufferRowRange 2014-03-06 12:36:42 -07:00
Nathan Sobo 63f5a0a324 💄 Rename attributes to params to match TextBuffer naming 2014-03-06 12:32:17 -07:00
Nathan Sobo f0837bb98b 📝 Improve DisplayBuffer::findMarkers docs 2014-03-06 12:31:55 -07: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 aff37d1ae4 WIP: Add failing spec for duplicating folds when duplicating lines 2014-03-06 00:29:35 -07:00
Nathan Sobo a0234d0cc6 Handle empty selections on folded lines 2014-03-06 00:07:59 -07:00
Nathan Sobo 8a77acb51e Duplicate multiple selections and multiple lines; folds are broken 2014-03-05 23:29:28 -07: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 5e8213d45f Add atom.allowUnsafeEval loophole and disable unsafe-eval again
With Node.js baked in, there's no water-tight way to prevent users from
evaluating code at runtime, at least with CSP alone. This is because
node exposes a 'vm' module that allows scripts to be compiled. There's
also `module._compile`, etc.

I think a reasonable compromise is to protect users from eval'ing code
by accident. This commit adds an atom.allowUnsafeEval method which
re-enables eval in the dynamic scope of the given function.

I then use this to compile the keystroke grammar which saves us the
complexity of pre-compiling it during specs.

What do people think?
2014-03-05 09:57:08 -07: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
Patrick Toomey fc543fc5a6 add unsafe-eval for now 2014-03-05 09:32:49 -06:00
Patrick Toomey 2e3aec81e7 initial attempt at CSP policy to see what breaks 2014-03-05 09:03:27 -06: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
Kevin Sawicki 3f83aaf32d Upgrade to language-ruby-on-rails@0.8.0 2014-03-01 15:56:21 -08:00
Kevin Sawicki e8ec565273 Upgrade to language-php@0.9.0 2014-03-01 15:51:28 -08:00
Kevin Sawicki 8ab6460571 Upgrade to language-html@0.9.0 2014-03-01 15:49:21 -08:00
Kevin Sawicki 19f7abf0f8 Upgrade to tabs@0.26.0 2014-03-01 15:47:39 -08:00
Kevin Sawicki ce2ad727c6 Use atom@github.com in crash message instead of repo 2014-03-01 15:47:39 -08:00
Nathan Sobo fe213d1e13 Nuke this section without nuking all the links 2014-03-01 15:41:54 -08:00
Nathan Sobo 35b78af446 Revert "Remove outdated section of the creating-a-package docs"
This reverts commit ce5eef2605.
2014-03-01 15:41:54 -08:00
Kevin Sawicki a72d4ccded Upgrade to language-ruby@0.14.0 2014-03-01 15:32:20 -08:00
Kevin Sawicki 1babf4ba55 Upgrade to tabs@0.25.0 2014-03-01 15:31:37 -08:00
Nathan Sobo 18ab2477a8 Prepare 0.64.0 release 2014-03-01 15:10:58 -08:00
Nathan Sobo 9d56392cbc Merge pull request #1657 from atom/ns-multiple-unsaved-buffers
Allow multiple unsaved buffers
2014-03-02 00:50:12 +02:00
Nathan Sobo 7cc68f59a7 Allow multiple unsaved empty buffers to be opened
Fixes #1600
2014-03-01 14:40:48 -08:00
Nathan Sobo d6a9a0b15f Remove Editor::isEqual
An editor is such a stateful concept that comparing different instances
for "equality" doesn't make much sense. This was interfering with the
ability to distinguish successive editors assigned as active pane items.
2014-03-01 14:39:32 -08:00
Kevin Sawicki 766471f4b9 Upgrade to image-view@0.27.0 2014-03-01 14:24:08 -08:00
Kevin Sawicki 143a6a9cca Upgrade to image-view@0.26.0 2014-03-01 14:24:08 -08:00
Nathan Sobo 7ad41a3ff2 Upgrade text-buffer to 1.2.0 for ::backwardsScan 2014-03-01 13:28:11 -08:00
Kevin Sawicki 12fadffb00 Upgrade to language-gfm@0.19.0 2014-03-01 13:27:45 -08:00
Kevin Sawicki ef97128fe6 Upgrade to language-xml@0.8.0 2014-03-01 13:17:25 -08:00
Kevin Sawicki 1b0bc366e4 Upgrade to language-javascript@0.13.0 2014-03-01 13:15:28 -08:00
Kevin Sawicki 89c87f99e8 Upgrade to markdown-preview@0.43.0 2014-03-01 13:11:24 -08:00
Ben Ogle 0e0b6a4978 Upgrade atom-light-syntax@0.15.0 2014-03-01 11:28:17 -08:00
Cheng Zhao 7fe3caf841 Merge pull request #1618 from atom/cz-build-symbols
Provide breakpad symbols of native modules
2014-03-01 11:31:59 +00: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
Kevin Sawicki 58f4e5bf76 Upgrade to open-on-github@0.23.0 2014-02-28 16:29:37 -08:00
Kevin Sawicki 2095c7546a Upgrade to fuzzy-finder@0.38.0 2014-02-28 16:19:45 -08:00
Kevin Sawicki 6005444fda Upgrade to markdown-preview@0.42.0 2014-02-28 16:12:47 -08:00
Kevin Sawicki 658ccaf78f Bump apm for screenshots in README templates 2014-02-28 15:43:46 -08:00
Kevin Sawicki 3112b2b071 Upgrade to bracket-matcher@0.23.0 2014-02-28 15:38:46 -08:00
Kevin Sawicki 32f746b918 Upgrade to open-on-github@0.22.0 2014-02-28 15:31:45 -08:00
Kevin Sawicki 5145a0260d Upgrade apm for publish doc fix 2014-02-28 14:47:28 -08:00
Kevin Sawicki acc782b754 Upgrade to language-python@0.9.0 2014-02-28 14:43:04 -08:00
Kevin Sawicki e6508e6978 Upgrade to markdown-preview@0.41.0 2014-02-28 14:42:50 -08:00
Nathan Sobo 4e45fbbc04 Merge pull request #1617 from atom/fix-keybinding-docs
Fix CSON syntax for keybinding example in docs
2014-03-01 00:10:41 +02:00
Ben Ogle 81c2d70fbb Update find-and-replace@0.87.0 2014-02-28 13:28:33 -08:00
Kevin Sawicki d2ec20bd10 Upgrade to archive-view@0.26.0 2014-02-28 12:31:41 -08:00
Nathan Sobo 6e3a7f8fa0 Fix licenses task, list "All Rights Reserved" in package.json for now. 2014-02-28 11:27:08 -08:00
Nathan Sobo 8e83acbafd Remove apache license from package.json 2014-02-28 11:20:50 -08:00
Nathan Sobo 40a8522460 Merge pull request #1623 from atom/ns-fix-editor-width-related-freezes
Fix freezes related to the editor's width in characters being assigned to non-positive integers
2014-02-28 20:38:07 +02:00
Nathan Sobo dfa9ca733e Merge pull request #1622 from atom/ns-fix-row-map-corruption
Fix row map corruption
2014-02-28 20:33:10 +02:00
Nathan Sobo 4681098e8c Only allow positive widths in characters to be assigned
Fixes #1574
2014-02-28 10:31:02 -08:00
Kevin Sawicki 4f81d53d11 Prepare 0.63.0 2014-02-28 10:27:33 -08:00
Nathan Sobo dc5dc608ba Avoid row map corruption when replacing a subset of a fold's buffer rows
Fixes #1576

When splicing regions into the row map, we always express the starting
buffer row, then the number of buffer rows covered by the regions we're
inserting. When we're inserting regions representing folds, they always
extend to the end of a fold, so we need to ensure the endBufferRow also
extends to the end of the fold.

For example, say rows [5…10] are folded, and we handle a replacement of
rows [5…8]. We will still insert a region for the fold covering 1 screen
row and 5 buffer rows, so we need to update the endBufferRow to extend
to the end of the fold as well (10).
2014-02-28 10:11:57 -08:00
Nathan Sobo 83dc1c76ef Add a spec that corrupts the row map by partially editing a fold 2014-02-28 10:11:57 -08:00
Kevin Sawicki d660e9a066 Go back to strict-ssl false 2014-02-28 10:01:54 -08:00
Kevin Sawicki abcaaa3264 Try single quotes for empty ca arg 2014-02-28 09:53:39 -08:00
Kevin Sawicki 7f2b871885 Use known list of registrars 2014-02-28 09:43:38 -08:00
Kevin Sawicki e51dd05989 Disable strict-ssl for now on janky machines
This is until we can get npm upgraded there.
2014-02-28 09:33:18 -08:00
Kevin Sawicki 51da7732f4 Upgrade apm for npm 1.4.4 upgrade 2014-02-28 08:49:50 -08:00
Cheng Zhao 1b7dc2f147 Make publish-build support multiple assets. 2014-02-28 16:49:03 +08:00
Garen Torikian 63aedb65d9 Fix CSON syntax for keybinding example 2014-02-28 00:01:12 -08:00
Cheng Zhao 9c503fe8d6 💄 2014-02-28 13:45:53 +08:00
Cheng Zhao 83e59bf5b0 Dump symbols when in CI. 2014-02-28 13:34:49 +08:00
Cheng Zhao 4ef5c374ef Upload symbols when publishing build. 2014-02-28 13:30:55 +08:00
Cheng Zhao 764b31fdcd Add dump-symbols task. 2014-02-28 13:09:03 +08:00
probablycorey 7fe2b41209 Upgrade to welcome@0.11.0 2014-02-27 20:45:12 -08:00
Cheng Zhao 25a14bf44f Add minidump as build dependency. 2014-02-28 10:56:57 +08:00
Kevin Sawicki bde3606757 Upgrade to link@0.19.0 2014-02-27 17:59:12 -08:00
Kevin Sawicki 84f7af7e58 Upgrade to tree-view@0.72.0 2014-02-27 17:45:10 -08:00
Ben Ogle bf0a448bff Upgrade package-generator@0.29.0 2014-02-27 17:18:18 -08:00
Ben Ogle be148574e3 Merge pull request #1611 from atom/bo-theme-doc-update
Theme doc update
2014-02-27 17:13:52 -08:00
Nathan Sobo 235e00c19a Merge pull request #1583 from atom/ns-improve-editor-api-docs
Improve generated editor docs
2014-02-28 03:12:49 +02:00
Kevin Sawicki 87035eb4a9 Upgrade to grammar-selector@0.22.0 2014-02-27 17:09:46 -08:00
Ben Ogle e67a9c9664 Changes for kevin 2014-02-27 17:05:10 -08:00
Kevin Sawicki 719dfd91ab Upgrade to find-and-replace@0.86.0 2014-02-27 16:47:47 -08:00
Kevin Sawicki 5f97c46e5f Upgrade to underscore-plus@1.0.2 2014-02-27 16:34:29 -08:00
Ben Ogle 739d171462 Add naming convention for -ui themes 2014-02-27 16:32:04 -08:00
Kevin Sawicki f105602da5 Upgrade to symbols-view@0.40.0 2014-02-27 16:31:08 -08:00
Ben Ogle 01f4ebde54 Add a bit about naming a syntax theme 2014-02-27 16:29:35 -08:00
Ben Ogle 97f3d1662e Add tip 2014-02-27 16:29:04 -08:00
Nathan Sobo aa04589dd2 Rename Editor::joinLine to ::joinLines
It acts on multiple lines, and in a quick survey of the literature I see
Sublime docs referring to it as "join lines" as well.
2014-02-27 16:16:01 -08:00
Nathan Sobo 9473039a0b Publicize Editor::foldBufferRow 2014-02-27 16:16:01 -08:00
Nathan Sobo 574cc098c6 Remove unused methods 2014-02-27 16:16:01 -08:00
Nathan Sobo f17c490768 Make Editor::unfoldBufferRow destroy all folds containing the buffer row
Also, remove ::destroyAllFoldsContainingBufferRow as it is now redundant
2014-02-27 16:16:01 -08:00
Nathan Sobo 6d246f5244 Rename Editor::foldSelection to Editor::foldSelectedLines and publicize 2014-02-27 16:16:01 -08:00
Nathan Sobo bec30ae833 Remove self references from Editor overview 2014-02-27 16:16:01 -08:00
Nathan Sobo feb501c76f Add a common tasks section to the Editor class overview 2014-02-27 16:16:00 -08:00
Nathan Sobo b32f4ad80a Kill example heading 2014-02-27 16:16:00 -08:00
Nathan Sobo 4b12228b15 Fix broken method links 2014-02-27 16:16:00 -08:00
Nathan Sobo afd576697e Remove some metaprogrammed delegators and add docs 2014-02-27 16:16:00 -08:00
Nathan Sobo 6a24360ffd Revise Editor class overview; add coordinate system explanation 2014-02-27 16:16:00 -08:00
Nathan Sobo 5faa69b66c Update Editor API docs 2014-02-27 16:16:00 -08:00
Nathan Sobo 833498011c Privatize ::bufferRangeForBufferRow 2014-02-27 16:16:00 -08:00
Nathan Sobo 4f6cc659c4 Make Editor::setVisible private 2014-02-27 16:16:00 -08:00
Nathan Sobo 5cef77e52c Clean up Editor class overview 2014-02-27 16:16:00 -08:00
Nathan Sobo 712ab734dd Privatize methods on Editor
- ::isEqual
- ::destroyFoldsIntersectingBufferRange
- ::destroyMarker
- ::addCursor
- ::addSelection
2014-02-27 16:16:00 -08:00
Kevin Sawicki 0f0a57af1c Prepare 0.62.0 2014-02-27 16:02:06 -08:00
Nathan Sobo ce5eef2605 Remove outdated section of the creating-a-package docs 2014-02-27 15:59:06 -08:00
Nathan Sobo 6d6960badb Merge pull request #1610 from atom/ns-better-error-reporting
Improve reporting of display buffer errors
2014-02-28 01:50:47 +02:00
Corey Johnson 54269aa92a Upgrade to fuzzaldrin@1.1.0 2014-02-27 15:39:17 -08:00
Kevin Sawicki ec65a71d6d Merge pull request #1607 from atom/ks-bump-max-size-to-two-mb
Bump max size to 2MB
2014-02-27 15:39:10 -08:00
Nathan Sobo 761fcde654 💄 2014-02-27 15:34:19 -08:00
Kevin Sawicki 3346ddac38 Bump max size to 2MB 2014-02-27 15:32:19 -08:00
Nathan Sobo f20c55f849 Use error constructor's name explicitly rather than arguments.callee 2014-02-27 15:29:47 -08:00
Kevin Sawicki 37c5c35a12 Upgrade to language-less@0.6.0 2014-02-27 15:28:29 -08:00
Nathan Sobo e541ccb197 Update exception-reporting to 0.16.0 for metadata, custom error names 2014-02-27 15:07:08 -08:00
Nathan Sobo 1f7027d825 Throw a custom BufferToScreenConversion error with metadata 2014-02-27 15:07:08 -08:00
Kevin Sawicki 0d9e7a5e08 Only scan dirty buffers that are inside the project 2014-02-27 14:44:34 -08:00
Kevin Sawicki c4ac96e669 Upgrade to markdown-preview@0.40.0 2014-02-27 13:48:48 -08:00
Kevin Sawicki 74f65b978e Bump minimum version to 10.8
Closes #1598
2014-02-27 13:35:00 -08:00
Kevin Sawicki eab874b3ef Upgrade to symbols-view@0.39.0 2014-02-27 13:27:12 -08:00
Kevin Sawicki 54d9361dad Upgrade to release-notes@0.25.0 2014-02-27 13:06:09 -08:00
Kevin Sawicki e8cd130ad6 Upgrade to markdown-preview@0.39.0 2014-02-27 13:02:30 -08:00
Kevin Sawicki 2f70f4ba25 📝 publishing not publish in links 2014-02-27 12:07:13 -08:00
Kevin Sawicki 1548167b94 Upgrade to language-make@0.9.0 2014-02-27 11:45:05 -08:00
Kevin Sawicki 91a320127a Upgrade to settings-view@0.85.0 2014-02-27 11:27:51 -08:00
Kevin Sawicki 7a0a4dc3b3 Upgrade to go-to-line@0.18.0 2014-02-27 11:11:36 -08:00
Kevin Sawicki ba9c006cb4 Update to wrap-guide@0.16.0 2014-02-27 11:06:01 -08:00
Kevin Sawicki 2f92160e9c Upgrade to styleguide@0.26.0 2014-02-27 11:01:38 -08:00
Kevin Sawicki 8f0063465c Update apm for 2fa sms fix 2014-02-27 10:55:12 -08:00
Nathan Sobo 0c8bb089b9 Reduce variation of buffer row to screen row conversion error message 2014-02-27 10:34:57 -08:00
Kevin Sawicki 746b99508b Upgrade to language-coffee-script@0.14.0 2014-02-27 09:32:48 -08:00
Kevin Sawicki 05ce497f29 Upgrade to language-javascript@0.12.0 2014-02-27 09:32:09 -08:00
Kevin Sawicki 5bfb382209 Upgrade to settings-view@0.84.0 2014-02-27 09:31:26 -08:00
Cheng Zhao 32efa7b112 Merge pull request #1599 from atom/atom-shell-v0.10.2
Upgrade to atom-shell@0.10.2
2014-02-27 17:18:32 +00:00
Cheng Zhao e4fcd589db Upgrade to atom-shell@0.10.3 2014-02-28 01:07:35 +08:00
Kevin Sawicki 8da5a99196 Upgrade to markdown-preview@0.38.0 2014-02-27 09:02:42 -08:00
Kevin Sawicki d5cb79027a Link to creating-a-package doc 2014-02-27 08:00:43 -08:00
Kevin Sawicki fea1a001ee Link to proper theme doc 2014-02-27 08:00:43 -08:00
Cheng Zhao 3ae6f0a93d Upgrade to atom-shell@0.10.2 2014-02-27 19:05:56 +08:00
Nathan Sobo 28d7db2371 Set overflow to 'hidden' on panes. I'm pretty sure this fixes #1594. 2014-02-26 18:19:07 -08:00
Kevin Sawicki 02b582a60d Prepare 0.61.0 release 2014-02-26 17:27:37 -08:00
Kevin Sawicki 83a40e1b33 Upgrade to settings-view@0.83.0 2014-02-26 17:16:41 -08:00
Corey Johnson ca0a875e6b Upgrade to welcome@0.10.0 2014-02-26 17:15:20 -08:00
Kevin Sawicki 9932d4789e Upgrade apm for init/clean arg checking 2014-02-26 15:44:32 -08:00
Kevin Sawicki 2c68dfd8cf Upgrade apm for relaxed publish repo check 2014-02-26 15:11:59 -08:00
Kevin Sawicki 64f66fad4d 📝 Update tests section 2014-02-26 13:30:41 -08:00
Kevin Sawicki 5a8e3100b9 Link to conversion guides 2014-02-26 13:18:38 -08:00
probablycorey 87dedc3dd2 Prepare 0.60.0 release 2014-02-26 12:23:37 -08:00
probablycorey 69b442c2a9 Prepare 0.59.0 release 2014-02-26 12:00:43 -08:00
probablycorey 77bf358d7a Upgrade to welcome@0.9.0 2014-02-26 11:55:43 -08:00
Kevin Sawicki 9ed7254277 Use 16 as font size default 2014-02-26 11:46:07 -08:00
Kevin Sawicki 1a08d99079 Prepare 0.58.0 release 2014-02-26 11:38:41 -08:00
Kevin Sawicki f852dcfd20 Upgrade apm for search command auth fix 2014-02-26 11:23:03 -08:00
Kevin Sawicki 04a4f4d5bb Upgrade apm for removed travis command 2014-02-26 11:17:46 -08:00
Kevin Sawicki 2e42dd3308 Upgrade apm version package.json version bump 2014-02-26 10:44:56 -08:00
Kevin Sawicki e9cf8d4647 Remove internal docs for beta
These can come back, just don't want them searchable for beta.
2014-02-26 10:30:15 -08:00
Kevin Sawicki 216351803b Upgrade to metrics@0.30.0 2014-02-26 10:17:40 -08:00
Kevin Sawicki d3eb969095 Upgrade to metrics@0.29.0 2014-02-26 10:14:26 -08:00
Kevin Sawicki 77c405626f Prepare 0.57.0 release 2014-02-26 09:55:28 -08:00
Kevin Sawicki e0af2122d2 📝 Add missing comma 2014-02-26 09:22:02 -08:00
Kevin Sawicki 1bd1121d50 📝 when instead of with 2014-02-26 09:20:57 -08:00
Kevin Sawicki 54e2a2af9d Upgrade to language-coffee-script@0.13.0 2014-02-26 08:37:46 -08:00
Kevin Sawicki 90a0b31cf8 Upgrade to feedback@0.27.0 2014-02-26 08:36:18 -08:00
Kevin Sawicki 1b257df5cf Upgrade to welcome@0.8.0 2014-02-25 21:34:33 -08:00
probablycorey b73acc88a7 Send release notes along with releaseName 2014-02-25 20:40:14 -08:00
Kevin Sawicki c6bb6b48b6 Upgrade to welcome@0.7.0 2014-02-25 20:32:52 -08:00
Kevin Sawicki cb95c3050d Prepare 0.56.0 release 2014-02-25 20:11:20 -08:00
Kevin Sawicki 3434a68ac0 Only use token to download grunt-download-atom-shell 2014-02-25 19:55:19 -08:00
Kevin Sawicki 9a941b97cb Use new atom-bot token 2014-02-25 19:52:59 -08:00
Kevin Sawicki 9074219145 Bump biscotto to 2.1.1 2014-02-25 19:41:45 -08:00
Kevin Sawicki e8d9512f02 Set stability level to 1 2014-02-25 19:34:24 -08:00
Kevin Sawicki 764e4ac7dd Upgrade apm for auth changes 2014-02-25 19:23:26 -08:00
Kevin Sawicki 9350b9dc7b Upgrade apm for template tweaks 2014-02-25 18:19:26 -08:00
Kevin Sawicki fb4e16250a Upgrade to markdown-preview@0.37.0 2014-02-25 18:19:26 -08:00
Corey Johnson 32a1d0c134 Prepare 0.55.0 release 2014-02-25 17:36:23 -08:00
Kevin Sawicki d471d60bfa Upgrade to markdown-preview@0.36.0 2014-02-25 16:41:15 -08:00
Corey Johnson 75d6aab811 🔥 logs 2014-02-25 16:27:39 -08:00
Corey Johnson a80fcff81c Upgrade to release-notes@0.24.0 2014-02-25 16:26:09 -08:00
Kevin Sawicki 42bce0d438 Upgrade ui themes 2014-02-25 16:25:29 -08:00
Corey Johnson 168e1d7c58 Prepare 0.54.0 release 2014-02-25 16:21:31 -08:00
Kevin Sawicki bdf0f7d10a Upgrade tomorrow theme 2014-02-25 16:09:13 -08:00
Kevin Sawicki d21060fd87 Upgrade solarized themes 2014-02-25 16:01:59 -08:00
Corey Johnson ddc7ebb576 Revert "Make master ci output verbose"
This reverts commit b1492037d5.
2014-02-25 15:59:20 -08:00
Kevin Sawicki 4ad45a1955 Upgrade syntax themes to 0.14.0 2014-02-25 15:38:41 -08:00
Kevin Sawicki 6c5b7cbd1e Downloaded instead of downloading 2014-02-25 15:21:09 -08:00
Corey Johnson b1492037d5 Make master ci output verbose 2014-02-25 14:45:26 -08:00
Kevin Sawicki 7a5537d01e Update icon 2014-02-25 13:26:42 -08:00
Kevin Sawicki 91fbb10fd3 Upgrade to biscotto@2.1 2014-02-25 11:47:10 -08:00
Corey Johnson 684687e412 Upgrade to welcome@0.6.0 2014-02-25 10:30:27 -08:00
Kevin Sawicki 4612d42fb3 Remove github-sign-in package from bundled packages 2014-02-25 10:22:20 -08:00
Kevin Sawicki 026a0672df Remove github-sign-in package from bundled packages 2014-02-25 10:19:52 -08:00
Kevin Sawicki fe4b60d6b0 Prepare 0.53.0 release 2014-02-25 10:17:08 -08:00
Cheng Zhao 040d76e3bf Merge pull request #1581 from atom/atom-shell-v0.10.1
Upgrade to atom-shell@0.10.1
2014-02-25 14:19:42 +00:00
Cheng Zhao 1885d50374 Upgrade to atom-shell@0.10.1 2014-02-25 20:14:14 +08:00
Kevin Sawicki f9e508e958 Upgrade apm for link tweaks 2014-02-24 17:40:13 -08:00
Kevin Sawicki de695e31d2 Drop www in atom.io links 2014-02-24 17:38:49 -08:00
Kevin Sawicki 4eabb5bec6 Upgrade to settings-view@0.82.0 2014-02-24 17:37:01 -08:00
Kevin Sawicki f3ec868af6 Remove Report an Issue menu 2014-02-24 17:34:02 -08:00
Kevin Sawicki 4e96d24d78 Upgrade to tree-view@0.71.0 2014-02-24 17:27:29 -08:00
Kevin Sawicki b5c3c01cc1 Upgrade to fuzzy-finder@0.37.0 2014-02-24 17:22:09 -08:00
Kevin Sawicki 13aa29b485 :memo TomDoc BufferedNodeProcess 2014-02-24 17:09:22 -08:00
Kevin Sawicki be5342fb51 Assign all ivars in constructor 2014-02-24 16:59:58 -08:00
Kevin Sawicki 50dc82d074 Add example to overview 2014-02-24 16:59:15 -08:00
Kevin Sawicki 4358ff9183 Add Editor to usage message 2014-02-24 16:41:34 -08:00
Kevin Sawicki 336f0382b5 Don't require ~/github/atom for dev mode windows
Use ~/github/atom when available but keep the dev mode flag
on the window's load settings even when it does not exist.

Changes both cmd-shift-o and `atom --dev`
2014-02-24 16:38:17 -08:00
Kevin Sawicki 0307c0e6c9 Rename ~/.atom/styles.css to ~/.atom/styles.less 2014-02-24 16:14:05 -08:00
Kevin Sawicki fc1e62471f Upgrade to feedback@0.26.0 2014-02-24 16:00:47 -08:00
Kevin Sawicki 137e9aacab Implement ::serialize in example 2014-02-24 15:26:04 -08:00
Kevin Sawicki 4ddc6c1c1d Don't bundle gists package
It will come back better than ever
2014-02-24 15:22:14 -08:00
Kevin Sawicki ef12913422 Upgrade apm for login fix and template updates 2014-02-24 15:21:24 -08:00
Kevin Sawicki 29c36836fe Upgrade to jasmine-tagged 1.1.1 2014-02-24 10:29:29 -08:00
Nathan Sobo 5c2614544d Update tabs to 0.24.0 for undefined underscore fix 2014-02-24 11:08:12 -07:00
Nathan Sobo 4c1d85e2bf 💄 A few grammar tweaks to creating-a-theme.md 2014-02-24 10:42:41 -07:00
Kevin Sawicki 2dd04c449c Merge pull request #1578 from atom/ks-dont-export-fs-and-_
Don't export fs and _
2014-02-23 17:35:37 -08:00
Kevin Sawicki 55f4a7b63e Remove unneeded exists checks 2014-02-23 17:26:49 -08:00
Kevin Sawicki a651254e38 Require fs-plus directly in specs 2014-02-23 17:19:00 -08:00
Kevin Sawicki 1131952a54 Remove stray unicode char 2014-02-23 17:11:38 -08:00
Kevin Sawicki 189ebc4476 Remove _/fs from modules directly 2014-02-23 17:09:05 -08:00
Kevin Sawicki 0688ddf083 Remove _ and fs from exports 2014-02-23 17:05:26 -08:00
Kevin Sawicki de2e59ddcb Upgrade to find-and-replace@0.85.0 2014-02-23 17:04:23 -08:00
Kevin Sawicki 41632f2d95 Upgrade to tabs@0.23.0 2014-02-23 17:03:26 -08:00
Kevin Sawicki d21e8f0aa8 Upgrade to spell-check@0.26.0 2014-02-23 16:57:25 -08:00
Kevin Sawicki 5521d3765a Upgrade to wrap-guide@0.15.0 2014-02-23 16:55:35 -08:00
Kevin Sawicki d8b4e00fa8 Upgrade to whitespace@0.15.0 2014-02-23 16:50:18 -08:00
Kevin Sawicki e1906ec9ba Upgrade to welcome@0.5.0 2014-02-23 16:45:53 -08:00
Kevin Sawicki 35fce94025 Upgrade to update-package-dependencies@0.4.0 2014-02-23 16:41:49 -08:00
Kevin Sawicki 4708ffa8f6 Upgrade to tree-view@0.70.0 2014-02-23 16:36:15 -08:00
Kevin Sawicki 8a858a1836 Upgrade to to timecop@0.15.0 2014-02-23 16:27:23 -08:00
Kevin Sawicki f8ce0be095 Upgrade to tabs@0.22.0 2014-02-23 16:20:44 -08:00
Kevin Sawicki cb17078c48 Upgrade to symbols-view@0.38.0 2014-02-23 16:14:32 -08:00
Kevin Sawicki 28ed117db8 Upgrade to styleguide@0.25.0 2014-02-23 16:05:05 -08:00
Kevin Sawicki 67d505fc7e Upgrade to status-bar@0.33.0 2014-02-23 15:59:01 -08:00
Kevin Sawicki dba2ab55e0 Upgrade to snippets@0.32.0 2014-02-23 15:52:58 -08:00
Kevin Sawicki 119bf1a879 Upgrade to settings-view@0.81.0 2014-02-23 15:48:11 -08:00
Kevin Sawicki 30dd202f33 Upgrade to release-notes@0.23.0 2014-02-23 15:43:42 -08:00
Kevin Sawicki 4a4285b18f Upgrade to package-generator@0.28.0 2014-02-23 15:38:35 -08:00
Kevin Sawicki 37b5a00df3 Upgrade to open-on-github@0.21.0 2014-02-23 15:30:55 -08:00
Kevin Sawicki 45fff99967 Upgrade to metrics@0.28.0 2014-02-23 15:26:53 -08:00
Kevin Sawicki c319329b23 Upgrade to markdown-preview@0.35.0 2014-02-23 15:12:57 -08:00
Kevin Sawicki e280aa7f40 Update to link@0.18.0 2014-02-23 15:11:51 -08:00
Kevin Sawicki f06a976052 Upgrade to keybinding-resolver@0.11.0 2014-02-23 15:02:26 -08:00
Kevin Sawicki 77b8b51c16 Upgrade to image-view@0.25.0 2014-02-23 14:52:29 -08:00
Kevin Sawicki 3b86bb528c Upgrade to grammar-selector@0.21.0 2014-02-23 14:28:30 -08:00
Kevin Sawicki d55acdd67b Upgrade to go-to-line@0.17.0 2014-02-23 14:23:51 -08:00
Kevin Sawicki de8d0197ff Upgrade to github-sign-in@0.20.0 2014-02-23 14:17:50 -08:00
Kevin Sawicki 1fb9697229 Upgrade to git-diff@0.25.0 2014-02-23 14:09:30 -08:00
Kevin Sawicki 5f8fe698ba Upgrade to gists@0.18.0 2014-02-23 13:56:13 -08:00
Kevin Sawicki ed41ba49f9 Upgrade to fuzzy-finder@0.36.0 2014-02-23 13:51:56 -08:00
Kevin Sawicki b500b23a69 Upgrade to find-and-replace@0.84.0 2014-02-23 13:35:36 -08:00
Kevin Sawicki 27099392f4 Upgrade to feedback@0.25.0 2014-02-23 13:26:16 -08:00
Kevin Sawicki 19e63996ac Upgrade to exception-reporting@0.15.0 2014-02-23 13:17:09 -08:00
Kevin Sawicki 87a4f3fc20 Upgrade to dev-live-reload@0.28.0 2014-02-23 13:13:01 -08:00
Kevin Sawicki 1dfed85f37 Upgrade to command-palette@0.18.0 2014-02-23 12:58:49 -08:00
Kevin Sawicki cac2599b55 Upgrade to bracket-matcher@0.22.0 2014-02-23 12:53:47 -08:00
Kevin Sawicki d765e7f115 Upgrade to bookmarks@0.21.0 2014-02-23 12:48:20 -08:00
Kevin Sawicki 552af032f4 Upgrade to background-tips@0.8.0 2014-02-23 12:40:51 -08:00
Kevin Sawicki 9bd82b201c Upgrade to autosave@0.12.0 2014-02-23 12:34:40 -08:00
Kevin Sawicki 662e8b8a11 Upgrade to autoflow@0.15.0 2014-02-23 12:29:21 -08:00
Kevin Sawicki eda4e53b2c Upgrade to autocomplete@0.24.0 2014-02-23 12:24:47 -08:00
Kevin Sawicki b8cbc3b5af Upgrade to archive-view@0.24.0 2014-02-23 12:09:49 -08:00
Kevin Sawicki f6309ec489 Mention menus for opening ~/.atom files 2014-02-23 11:57:20 -08:00
Kevin Sawicki be30cce41a Upgrade to settings-view@0.79.0 2014-02-23 10:30:52 -08:00
Daniel Hengeveld a6efeb7a19 Merge pull request #1575 from atom/organization-over-org
Prefer 'organization' over 'org'
2014-02-22 22:18:00 -08:00
Kevin Sawicki bc3791f738 Make it more obvious that example argument is a folder 2014-02-22 18:50:56 -08:00
Kevin Sawicki a8cc73c5e6 📝 Add deeper instructions on project tags 2014-02-22 18:45:53 -08:00
Kevin Sawicki 2a8dce75cd 📝 Tweak add/move/delete intro sentence 2014-02-22 18:31:52 -08:00
Kevin Sawicki e7200fb938 📝 Mention cmd-shift-b 2014-02-22 18:29:31 -08:00
Kevin Sawicki 8c60207fde 📝 on instead of at 2014-02-22 18:27:53 -08:00
Kevin Sawicki 1ca86d36fd Use .ctags file from symbols view 2014-02-22 18:27:07 -08:00
Kevin Sawicki 6f971901d7 📝 Settings view not preferences pane 2014-02-22 18:25:50 -08:00
Kevin Sawicki 6f353b6c54 Upgrade apm for init/view fixes 2014-02-22 18:23:27 -08:00
Kevin Sawicki a7ebdbb361 Update customizing doc for new settings view UI 2014-02-22 18:23:10 -08:00
Kevin Sawicki d84a0337b4 Merge pull request #1572 from atom/ks-review-theme-doc
Review theme doc
2014-02-22 17:41:10 -08:00
Kevin Sawicki 0d1f980940 Correct grammar in clone step 2014-02-22 17:26:52 -08:00
Kevin Sawicki cf382ea2f8 style instead of styles 2014-02-22 17:26:52 -08:00
Kevin Sawicki a674950ce1 Your instead of you 2014-02-22 17:26:52 -08:00
Kevin Sawicki 2b7bd8a9d7 📝 Document theme key in package.json 2014-02-22 17:26:52 -08:00
Kevin Sawicki d98fef52f2 📝 Update create a theme doc 2014-02-22 17:26:52 -08:00
Kevin Sawicki c2d1a10684 Upgrade to package-generator@0.27.0 2014-02-22 17:26:52 -08:00
Kevin Sawicki 2580c3e29f Upgrade to settings-view@0.78.0 2014-02-22 17:04:35 -08:00
Kevin Sawicki d2a340c8d0 Upgrade to snippets@0.31.0 2014-02-22 16:53:59 -08:00
Kevin Sawicki 8ec01b1583 Upgrade to language-make@0.8.0 2014-02-22 16:50:20 -08:00
Kevin Sawicki 1e3dc14729 Upgrade to language-yaml@0.6.0 2014-02-22 16:47:04 -08:00
Kevin Sawicki 253593431d Upgrade to language-xml@0.7.0 2014-02-22 16:38:49 -08:00
Kevin Sawicki 730fbec9ce Upgrade to language-gfm@0.18.0 2014-02-22 16:36:09 -08:00
Kevin Sawicki ec70b71511 Upgrade to language-toml@0.11.0 2014-02-22 16:35:04 -08:00
Kevin Sawicki 0b33709c69 Upgrade to language-toml@0.10.0 2014-02-22 16:33:04 -08:00
Kevin Sawicki 7db3f7fefb Upgrade to language-todo@0.6.0 2014-02-22 16:30:15 -08:00
Kevin Sawicki 9bb81b3db9 Upgrade to language-text@0.6.0 2014-02-22 16:27:27 -08:00
Kevin Sawicki dc1ee10aa4 Upgrade to language-sql@0.7.0 2014-02-22 16:15:15 -08:00
Kevin Sawicki 18214be4f7 Upgrade to language-source@0.7.0 2014-02-22 16:13:34 -08:00
Kevin Sawicki 1dd4e5bb87 Upgrade to language-shellscript@0.7.0 2014-02-22 16:07:29 -08:00
Kevin Sawicki 5c17e20a23 Upgrade to language-sass@0.8.0 2014-02-22 16:04:35 -08:00
Kevin Sawicki b040aed702 Upgrade to language-sass@0.7.0 2014-02-22 16:03:37 -08:00
Kevin Sawicki b68b075b1e Upgrade to language-ruby-on-rails@0.7.0 2014-02-22 15:46:43 -08:00
Kevin Sawicki df5f2c4f81 Upgrade to language-ruby@0.13.0 2014-02-22 15:35:36 -08:00
Kevin Sawicki 281eb99d88 Upgrade to language-python@0.8.0 2014-02-22 15:09:49 -08:00
Kevin Sawicki b03694efff Upgrade to language-property-list@0.7.0 2014-02-22 15:05:38 -08:00
Kevin Sawicki 2d9a805d8f Upgrade to language-php@0.8.0 2014-02-22 15:03:03 -08:00
Kevin Sawicki ee110dfd91 Upgrade to language-perl@0.8.0 2014-02-22 14:54:28 -08:00
Kevin Sawicki 6a0fee406e Upgrade to language-objective-c@0.9.0 2014-02-22 14:50:32 -08:00
Kevin Sawicki b8d2473c6a Upgrade to language-make@0.7.0 2014-02-22 14:23:18 -08:00
Kevin Sawicki ec4469aebb Upgrade to language-less@0.5.0 2014-02-22 14:20:22 -08:00
Kevin Sawicki 209adda958 Upgrade to language-json@0.8.0 2014-02-22 14:15:30 -08:00
Kevin Sawicki 1f74ae1206 Upgrade to language-javascript@0.11.0 2014-02-22 13:59:24 -08:00
Kevin Sawicki 04b0d6d930 Upgrade to language-java@0.8.0 2014-02-22 13:53:25 -08:00
Kevin Sawicki 5b6fcca58a Upgrade to language-hyperlink@0.8.0 2014-02-22 13:48:19 -08:00
Kevin Sawicki cfb785705b Upgrade to language-coffee-script@0.12.0 2014-02-22 13:45:42 -08:00
Kevin Sawicki 80460850d4 Upgrade to language-go@0.6.0 2014-02-22 13:45:16 -08:00
Kevin Sawicki 116b920703 Upgrade to language-html@0.8.0 2014-02-22 13:37:31 -08:00
Kevin Sawicki 89b683d9d3 Upgrade to language-go@0.5.0 2014-02-22 13:27:27 -08:00
Kevin Sawicki 5ac8611a2c Upgrade to language-css@0.10.0 2014-02-22 13:24:08 -08:00
Kevin Sawicki 52051837c9 Upgrade to language-git@0.9.0 2014-02-22 13:21:08 -08:00
Kevin Sawicki 1ed3767f0c Upgrade to language-css@0.9.0 2014-02-22 13:15:32 -08:00
Kevin Sawicki 7f0e6fd86c Upgrade to language-coffee-script@0.11.0 2014-02-22 13:01:45 -08:00
Kevin Sawicki 03610f01d4 Upgrade to language-c 0.12.0 2014-02-22 11:53:57 -08:00
Kevin Sawicki 5f548627b3 Add contributing guide 2014-02-22 11:50:45 -08:00
Kevin Sawicki 80497be71b Upgrade to language-c@0.11.0 2014-02-22 11:47:10 -08:00
Kevin Sawicki 952b5e84f7 Upgrade to season 1.0.2 2014-02-22 11:38:41 -08:00
Lee Reilly 25eb38ff60 Prefer 'organization' over 'org'
Per the Style Guide @ https://github.com/styleguide/words
2014-02-21 22:55:02 -08:00
Kevin Sawicki b4517c5393 Upgrade to biscotto 2.x
Closes #1571
2014-02-21 17:24:42 -08:00
Nathan Sobo 67a1112ced Don't destroy empty panes in specs 2014-02-21 16:08:35 -07:00
Nathan Sobo 6f38a40b94 Destroy empty panes by default. Closes #1569 2014-02-21 16:08:35 -07:00
Nathan Sobo 5a20066d2e Merge pull request #1551 from atom/ns-licenses
Check that all bundled modules have permissive licenses during CI build
2014-02-22 00:57:51 +02:00
Kevin Sawicki 37be8fab30 Upgrade to settings-view@0.37.0 2014-02-21 14:34:30 -08:00
Nathan Sobo 91fffc08b9 Upgrade release-notes and markdown-preview for fully-licensed roaster 2014-02-21 14:38:43 -07:00
Nathan Sobo 458dea9780 Allow language-coffee-script without a license for now 2014-02-21 14:22:40 -07:00
Nathan Sobo ea43384244 Remove mustache, pegs, and clojure because they aren't licensed 2014-02-21 14:17:41 -07:00
Nathan Sobo 65a8c8d946 Override license for promzard@0.2.0
It's a dependency of npm which makes it difficult to upgrade
2014-02-21 14:16:45 -07:00
Nathan Sobo 0e93a11850 Upgrade to legal-eagle 0.3.0 to check LICENSE file first 2014-02-21 13:30:07 -07:00
Nathan Sobo ce34f758bd Add "View License" item to the application menu 2014-02-21 13:11:30 -07:00
Nathan Sobo 0eaf3b6336 Add an 'application:open-license' command
It just opens the LICENSE file in a buffer
2014-02-21 13:08:26 -07:00
Nathan Sobo 4700eeb7e2 Remove Apache license and use plain-text, copyright-only license instead 2014-02-21 12:49:17 -07:00
Nathan Sobo d7d2a6f1f0 Merge branch 'master' into ns-licenses
Conflicts:
	package.json
2014-02-21 12:38:41 -07:00
Nathan Sobo 878831bfc7 Write LICENSE to the appDir during build task 2014-02-21 12:35:05 -07:00
Nathan Sobo 324ae3fe3a Replace report-licenses with generate-license task. Output plain text. 2014-02-21 11:54:04 -07:00
Kevin Sawicki bc22130938 Add publish doc to index 2014-02-21 09:51:44 -08:00
Kevin Sawicki 461b95b1ac Upgrade apm for publish fix 2014-02-20 18:29:29 -08:00
Kevin Sawicki d14396e2d3 Upgrade to language-coffee-script@0.10.0 2014-02-20 17:39:35 -08:00
Kevin Sawicki 1e0fd948a5 Upgrade to settings-view@0.77.0 2014-02-20 16:14:38 -08:00
Nathan Sobo 9d9e33f245 Merge pull request #1561 from atom/ns-modernize-doc-links
Use CoffeeScript literal syntax to reference methods in docs
2014-02-21 02:09:47 +02:00
Nathan Sobo f612a85599 Merge remote-tracking branch 'origin/master' into ns-modernize-doc-links 2014-02-20 16:35:16 -07:00
Nathan Sobo 136e7d3491 Update reference syntax in contributing docs 2014-02-20 16:34:53 -07:00
Nathan Sobo 00b913d363 Upgrade to biscotto 1.x for new method reference syntax 2014-02-20 16:30:01 -07:00
Nathan Sobo 3fd11b7aaf Merge branch 'master' into ns-modernize-doc-links 2014-02-20 16:26:34 -07:00
Nathan Sobo c1cf4efb31 Merge branch 'master' into ns-licenses
Conflicts:
	package.json
2014-02-20 16:16:01 -07:00
Kevin Sawicki 4c65d711b0 Log warning when ~/.atom/keymap.cson can't be parsed
Previously an uncaught error would be thrown and the file
would no longer be watched
2014-02-20 14:31:27 -08:00
Corey Johnson 090f737647 Upgrade to markdown-preview@0.33.0 2014-02-20 14:30:31 -08:00
Corey Johnson 224294d00f Merge pull request #1555 from atom/cj-ns-markdown-preview-pane-fixes
Changes needed by markdown preview refactoring
2014-02-20 14:10:13 -08:00
Corey Johnson 8c145168ef Merge pull request #1554 from atom/cj-ns-rename-workspace-view-pane-methods
Rename workspace view pane methods
2014-02-20 14:00:05 -08:00
Corey Johnson 4660ed5745 Prepare 0.52.0 release 2014-02-20 13:57:05 -08:00
Kevin Sawicki c515cf880c Verify selector before registering keybinding 2014-02-20 12:23:08 -08:00
Kevin Sawicki eb58ce7736 Return false on invalid selectors 2014-02-20 11:49:13 -08:00
Kevin Sawicki 08ede33b66 Log warning when enabled theme isn't installed 2014-02-20 11:42:04 -08:00
Corey Johnson & Nathan Sobo ff519d52b2 Upgrade to feedback@0.24.0 2014-02-20 11:15:17 -08:00
Corey Johnson & Nathan Sobo 6c5a5c49da Remove unused Point 2014-02-20 11:14:15 -08:00
Nathan Sobo b5a799c997 Point at biscotto branch on github until atom/biscotto#27 lands 2014-02-20 12:01:12 -07:00
Kevin Sawicki ca7d2695ea Upgrade to settings-view@0.76.0 2014-02-19 19:11:36 -08:00
Kevin Sawicki 81c2374c87 Upgrade to dev-live-reload@0.26.0 2014-02-19 19:06:57 -08:00
Kevin Sawicki e5200d5414 Merge pull request #1549 from atom/ks-remove-some-default-packages
Remove some default packages
2014-02-19 18:26:28 -08:00
Kevin Sawicki f4fdbbc307 Remove editor-stats from default packages 2014-02-19 17:53:17 -08:00
Kevin Sawicki c6a7e84640 Remove visual bell from default packages 2014-02-19 17:52:34 -08:00
Kevin Sawicki fac70d080d Remove command-logger from default packages 2014-02-19 17:52:34 -08:00
Kevin Sawicki 5e2a641861 Remove terminal from default packages 2014-02-19 17:52:34 -08:00
Kevin Sawicki 9cf79730ea Merge pull request #1558 from atom/ks-show-featured-packages
Show featured packages
2014-02-19 17:51:31 -08:00
Kevin Sawicki 737d41ad16 Upgrade to settings-view@0.75.0 2014-02-19 17:44:25 -08:00
Kevin Sawicki a49ae766ae Upgrade apm for uninstall tweaks 2014-02-19 17:44:25 -08:00
Kevin Sawicki 239e6ce156 Upgrade apm for view command output tweak 2014-02-19 17:44:25 -08:00
Kevin Sawicki fb42086a6f Upgrade apm for view command 2014-02-19 17:44:25 -08:00
Kevin Sawicki 3f53b8d2cb Upgrade apm for featured/search commands 2014-02-19 17:44:25 -08:00
Nathan Sobo 53fb36d0e2 Switch all documentation links to match CoffeeScript literal notation
Foo::bar for instance methods
Foo.bar for class methods
2014-02-19 17:23:47 -07:00
Nathan Sobo 545b375bb5 Merge pull request #1556 from atom/ns-contributing-doc
Add public contribution guide
2014-02-20 00:14:38 +02:00
Nathan Sobo 383d8f6940 Don't mention vendor 2014-02-19 15:12:49 -07:00
Nathan Sobo 280fc9af85 Go back to old biscotto syntax until it's updated 2014-02-19 15:12:28 -07:00
Nathan Sobo 029e4336bc Add a link to the Emoji Cheat Sheet 2014-02-19 15:09:06 -07:00
Nathan Sobo aebca38ae6 Use a better imperative mood example 2014-02-19 14:01:03 -07:00
Nathan Sobo 01f6ca3cae Discuss clone location and ATOM_REPOS_HOME environment variable 2014-02-19 13:57:19 -07:00
Nathan Sobo 2275a6d2d1 Use --dev instead of -d for clarity 2014-02-19 13:54:18 -07:00
Kevin Sawicki 893493960f Relativize stack trace paths 2014-02-19 11:12:58 -08:00
Kevin Sawicki 26121489be Trim stack traces 2014-02-19 11:07:02 -08:00
Kevin Sawicki f0dc88e33c Merge pull request #1557 from atom/ks-remove-file-directory-exports
Remove File/Directory exports
2014-02-19 11:03:44 -08:00
Nathan Sobo 99f6b89b6e Upgrade language-css to 0.8.0 for update license and readme 2014-02-19 11:58:25 -07:00
Nathan Sobo ff42526199 Upgrade language-yaml to 0.5.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo dea7fafee7 Upgrade language-xml to 0.6.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo 357f158f8a Upgrade language-todo to 0.5.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo c18fa805f9 Upgrade language-text to 0.5.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo 5fd0850f5b Upgrade language-sql to 0.6.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo 66225736fe Upgrade language-source to 0.6.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo a87036b538 Upgrade language-shellscript to 0.6.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo 62b8ef7bb3 Upgrade language-ruby to 0.12.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo 546351dd46 Upgrade language-python to 0.6.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo 69f0572f2a Upgrade language-property-list to 0.6.0 for included license 2014-02-19 11:58:25 -07:00
Nathan Sobo a6ffaff2a2 Upgrade language-php to 0.7.0 for included license 2014-02-19 11:58:24 -07:00
Nathan Sobo 4e62540a9b Upgrade language-perl to 0.7.0 for included license 2014-02-19 11:58:24 -07:00
Nathan Sobo bb03d6b83d Upgrade language-objective-c to 0.8.0 for included license 2014-02-19 11:58:24 -07:00
Nathan Sobo 8aaa34b8fa Upgrade language-make to 0.6.0 for included license 2014-02-19 11:58:24 -07:00
Kevin Sawicki a8f4019693 Remove File and Directory 2014-02-19 10:58:14 -08:00
Nathan Sobo 03a60561b7 Upgrade language-json to 0.7.0 for included license 2014-02-19 11:57:21 -07:00
Nathan Sobo 761e96429d Upgrade language-javascript to 0.10.0 for included license 2014-02-19 11:53:59 -07:00
Nathan Sobo 3e685d91a5 Upgrade language-java to 0.7.0 for included license 2014-02-19 11:44:03 -07:00
Nathan Sobo 668d3d3672 Upgrade language-hyperlink to 0.7.0 for included license 2014-02-19 11:42:05 -07:00
Kevin Sawicki ad1fe5f5f0 Upgrade to snippets@0.30.0 2014-02-19 10:40:56 -08:00
Nathan Sobo 23308625f6 Upgrade language-html to 0.7.0 for included license 2014-02-19 11:39:50 -07:00
Kevin Sawicki abc6386ad6 Upgrade to markdown-preview@0.32.0 2014-02-19 10:39:01 -08:00
Nathan Sobo 91a1ce84d0 Upgrade language-git to 0.8.0 for included license 2014-02-19 11:36:47 -07:00
Kevin Sawicki 5695a209da Upgrade to dev-live-reload@0.25.0 2014-02-19 10:36:33 -08:00
Kevin Sawicki 97782de8d3 Upgrade to archive-view@0.23.0 2014-02-19 10:11:24 -08:00
Kevin Sawicki a056f44a66 Require File from pathwatcher 2014-02-19 10:01:56 -08:00
Nathan Sobo a8f57ed276 Upgrade language-c to 0.10.0 for included license 2014-02-19 11:00:52 -07:00
Kevin Sawicki dbd20bcd31 Remove File and Directory exports 2014-02-19 09:53:20 -08:00
Kevin Sawicki e6d63656b7 Upgrade to text-buffer 1.1.2 2014-02-19 09:50:40 -08:00
Kevin Sawicki 49fdd24af3 Pluralize outside of curlies 2014-02-19 09:30:29 -08:00
Kevin Sawicki db6018d847 Add File, Directory, and TextBuffer to includes 2014-02-19 09:29:38 -08:00
Kevin Sawicki d87393f21e Merge pull request #1553 from atom/ks-extract-text-buffer
Extract TextBuffer
2014-02-19 09:26:47 -08:00
Kevin Sawicki 857c467497 Upgrade to symbols-view@0.36.0 2014-02-19 09:19:09 -08:00
Kevin Sawicki 33a207d57c Experiment with bumping up the timeout 2014-02-19 09:19:09 -08:00
Kevin Sawicki 02e3754dd9 Upgrade to text-buffer 1.1.1 2014-02-19 09:19:09 -08:00
Kevin Sawicki 70ab01d376 💄 Remove accidental newline 2014-02-19 09:19:09 -08:00
Kevin Sawicki 6a34d58ff4 Remove debug logging 2014-02-19 09:19:09 -08:00
Kevin Sawicki 2c5ae6e553 Add back size check when creating buffers 2014-02-19 09:19:09 -08:00
Kevin Sawicki 1988ed9e92 📝 Doc undefined return case 2014-02-19 09:19:09 -08:00
Kevin Sawicki 7a04a414f7 Remove relative URI usage 2014-02-19 09:19:09 -08:00
Kevin Sawicki c16435a604 Upgrade to pathwatcher@0.16.0 2014-02-19 09:19:08 -08:00
Kevin Sawicki a9b2661d3c Require TextBuffer from text-buffer module 2014-02-19 09:19:08 -08:00
Kevin Sawicki 43220fb189 Remove extracted specs 2014-02-19 09:19:08 -08:00
Kevin Sawicki 43f272d1e7 Require Directory from pathwatcher 2014-02-19 09:19:08 -08:00
Kevin Sawicki 8900d9efdd Require TextBuffer from text-buffer module 2014-02-19 09:19:08 -08:00
Kevin Sawicki 4cc18cd936 Require File from pathwatcher 2014-02-19 09:19:08 -08:00
Kevin Sawicki ae060fb450 Export File/Directory from pathwatcher 2014-02-19 09:19:08 -08:00
Kevin Sawicki affaf9007a Upgrade to text-buffer 1.1 2014-02-19 09:19:08 -08:00
Kevin Sawicki 54e35a5014 Upgrade to pathwatcher@0.15.0 2014-02-19 09:19:08 -08:00
Kevin Sawicki 9fa72c0841 📝 Tweak header comment 2014-02-19 09:19:08 -08:00
Corey Johnson & Nathan Sobo cfaa5ac3cb Upgrade to whitespace@0.14.0 2014-02-19 08:59:56 -08:00
Nathan Sobo 76903a0b91 Upgrade release-notes to 0.21.0 for licensed roaster dependency 2014-02-19 09:25:30 -07:00
Nathan Sobo d316b14c4d Add license override for specificity@0.1.3
The author added a license to the repository
2014-02-19 09:24:58 -07:00
Nathan Sobo 523f965791 Remove language-puppet because the source TextMate bundle is GPL'd 2014-02-19 09:24:58 -07:00
Nathan Sobo 9f2d6fd8b5 Upgrade scandal to 0.15.0 for isbinaryfile license 2014-02-19 09:23:25 -07:00
Nathan Sobo b176a246b3 Upgrade to clear-cut 0.4.0 for included license 2014-02-19 09:23:25 -07:00
Nathan Sobo fac844c255 Add license override for buffers@0.1.1 2014-02-19 09:23:25 -07:00
Nathan Sobo 59bd424e89 Note that content is omitted from aws-sign 2014-02-19 09:23:25 -07:00
Nathan Sobo 12bc2a0a39 Add license-check step to CI grunt task 2014-02-19 09:23:25 -07:00
Nathan Sobo dca5fadeec Upgrade legal-eagle to 0.2.0 2014-02-19 09:23:25 -07:00
Nathan Sobo 0872db3780 Fix exit call in check licenses task 2014-02-19 09:23:25 -07:00
Nathan Sobo 6134d95bfd WIP 2014-02-19 09:23:25 -07:00
Nathan Sobo 1bf98f5b8d Add check-licenses task and break license-overrides into their own file 2014-02-19 09:23:24 -07:00
Nathan Sobo f468420a29 Add report-licenses task
It logs a report about the licenses of all dependencies to standard out,
including the license type, the source of the information, and the text
of the source if it's not just an entry in the `package.json`.

There are still some licenses that couldn't be automatically harvested
that will need to be covered in the overrides.
2014-02-19 09:23:24 -07:00
Nathan Sobo 459c11b602 Add initial doc for contributing to packages 2014-02-19 08:40:21 -07:00
probablycorey 6f8cb24e5a Add Workspace::paneForUri 2014-02-18 15:40:36 -08:00
probablycorey b8d8ae68a3 Add Workspace::getActivePane 2014-02-18 15:40:36 -08:00
probablycorey 63eb032472 Give precedence to searchAllPanes option in Workspace::open 2014-02-18 15:40:36 -08:00
probablycorey 69396922db Remove WorkspaceView::indexOfPane 2014-02-18 15:39:06 -08:00
probablycorey 99774d7417 Add comment to PaneContainer::indexOfPane 2014-02-18 15:39:06 -08:00
probablycorey e67fb86084 Remove Workspace::getFocusedPane 2014-02-18 15:39:05 -08:00
probablycorey 98a25ca5e3 💄 2014-02-18 15:39:05 -08:00
probablycorey 245ad7a356 Rename pane focusing methods on Workspace 2014-02-18 15:39:05 -08:00
probablycorey b042dffc2c Rename Workspace::getPanes to Workspace::getPaneViews 2014-02-18 15:39:05 -08:00
probablycorey ef263580df Replace WorkspaceView:eachPane with WorkspaceView:eachPaneView 2014-02-18 15:39:05 -08:00
Kevin Sawicki c0010789bc Remove debug logging 2014-02-18 11:53:55 -08:00
probablycorey 77453ff989 Upgrade to markdown-preview@0.31.0 2014-02-18 11:35:48 -08:00
Kevin Sawicki da945de5f5 Only require init script when it exists 2014-02-18 11:01:24 -08:00
Kevin Sawicki 7a7521d810 Upgrade apm for argument parsing tweaks 2014-02-18 09:35:32 -08:00
Kevin Sawicki 31811ea4ae Upgrade to open-on-github@0.20.0 2014-02-18 09:19:00 -08:00
Kevin Sawicki 512a14d2ed Show the window synchronously in specs
Showing it asynchronously was causing specs to fail that relied on a mini
editor having focus in the very first spec run.
2014-02-18 09:01:44 -08:00
Kevin Sawicki cdeb5d1a3d 💄 Use @ instead of this 2014-02-18 08:39:06 -08:00
Kevin Sawicki 72b120cfe1 Move random-words to dependencies 2014-02-17 16:43:09 -08:00
Kevin Sawicki 14424abe08 Remove unused first-mate dependency 2014-02-17 16:43:09 -08:00
Kevin Sawicki 254730dc9f Merge pull request #1552 from atom/ks-remove-npm-warnings
Remove npm warnings
2014-02-17 16:21:23 -08:00
Kevin Sawicki ba3ae00b76 Upgrade to markdown-preview@0.30.0 2014-02-17 16:14:21 -08:00
Kevin Sawicki ea2793a746 Upgrade to symbols-view@0.35.0 2014-02-17 15:56:55 -08:00
Kevin Sawicki e5fe583a3c Upgrade to settings-view@0.74.0 2014-02-17 15:56:05 -08:00
Kevin Sawicki fe19798af9 Upgrade to less-cache@0.12.0 2014-02-17 15:55:07 -08:00
Kevin Sawicki ce6751859c Upgrade to image-view@0.24.0 2014-02-17 15:52:41 -08:00
Kevin Sawicki b7aa88f9a1 Upgrade to snippets@0.29.0 2014-02-17 15:51:48 -08:00
Kevin Sawicki 0c01df5d29 Upgrade to fs-plus 2.x in build 2014-02-17 15:49:47 -08:00
Kevin Sawicki 24403ef0b0 Upgrade to nslog@0.5.0 2014-02-17 15:46:04 -08:00
Kevin Sawicki 56cb847633 Upgrade apm for version bumps 2014-02-17 15:33:55 -08:00
Kevin Sawicki a7a0ecd019 Upgrade to snippets@0.28.0 2014-02-17 15:32:39 -08:00
Kevin Sawicki 0dce31e02d Don't dedupe nan 2014-02-17 15:26:40 -08:00
Kevin Sawicki ad36db61c6 Upgrade to first-mate 1.1.5 2014-02-17 15:26:18 -08:00
Kevin Sawicki 69fe67d6e1 Upgrade to fs-plus 2.x 2014-02-17 15:25:51 -08:00
Kevin Sawicki 57ed5d7d57 Merge pull request #1550 from atom/ks-no-more-text-mate-package
Remove TextMatePackage
2014-02-17 15:06:42 -08:00
Kevin Sawicki 320acab126 Wait for activation promise 2014-02-17 14:58:55 -08:00
Kevin Sawicki a91285c754 Upgrade to settings-view@0.73.0 2014-02-17 14:57:52 -08:00
Kevin Sawicki 313fb79fdc Remove stray c 2014-02-17 14:50:34 -08:00
Kevin Sawicki 3571d1e60e Remove unused .tmbundle fixture 2014-02-17 14:47:05 -08:00
Kevin Sawicki 3d89f76abf Upgrade apm for init fix 2014-02-17 14:36:45 -08:00
Kevin Sawicki 9e19f62b47 Update packages for CSS selectors in scoped properties 2014-02-17 14:34:38 -08:00
Kevin Sawicki e439847b59 Remove preferences folder spec 2014-02-17 14:24:26 -08:00
Kevin Sawicki ce6d5b3b2a Upgrade to language-ruby@0.11.0 2014-02-17 14:21:54 -08:00
Kevin Sawicki b4e8d5480c Use Q.all 2014-02-17 14:07:18 -08:00
Kevin Sawicki 04290ebbbb Wait for package to be activated 2014-02-17 14:06:59 -08:00
Kevin Sawicki 366684f3d7 Add missing ThemePackage require 2014-02-17 13:23:21 -08:00
Kevin Sawicki 5f9549e279 Default metadata to empty hash 2014-02-17 13:16:00 -08:00
Kevin Sawicki a149056408 Remove unnecessary rejection 2014-02-17 13:12:38 -08:00
Kevin Sawicki fb60a3189a Call load on package 2014-02-17 13:10:19 -08:00
Kevin Sawicki 94f26b99cc grammarsPromise not grammarPromise 2014-02-17 13:00:29 -08:00
Kevin Sawicki 3f8d9a4c47 Combine AtomPackage and Package 2014-02-17 12:59:03 -08:00
Kevin Sawicki 50a27e99bb Chain activate promise with grammar/properties promises 2014-02-17 12:43:29 -08:00
Kevin Sawicki eb885357e6 Memoize AtomPackage/ThemePackage 2014-02-17 12:10:49 -08:00
Kevin Sawicki 9b3463ef64 Organize requires 2014-02-17 12:08:34 -08:00
Kevin Sawicki 39762081b1 Upgrade apm for init changes 2014-02-17 12:07:21 -08:00
Kevin Sawicki 0dd96a0732 Load scoped properties asynchronously 2014-02-17 12:01:37 -08:00
Kevin Sawicki 70d8777db6 Load grammars asynchronously 2014-02-17 11:47:04 -08:00
Kevin Sawicki bb0a31228d Call super from AtomPackage constructor 2014-02-17 11:34:01 -08:00
Kevin Sawicki cec35ed7c8 Use name ivar instead of metadata.name 2014-02-17 11:31:44 -08:00
Kevin Sawicki 95e68c8c2b Store metadata in Package constructor 2014-02-17 11:31:20 -08:00
Kevin Sawicki 3f5cd19ddc Add missing path. prefix 2014-02-17 11:29:29 -08:00
Kevin Sawicki d0dd0a9882 Rename e variables to error 2014-02-17 11:29:11 -08:00
Kevin Sawicki 2d52f3deac Rename path variables to packagePath 2014-02-17 11:28:55 -08:00
Kevin Sawicki fa376d9543 Remove TextMatePackage 2014-02-17 11:26:58 -08:00
Kevin Sawicki 31480f92ce Upgrade to language-yaml@0.3.0 2014-02-17 11:25:37 -08:00
Kevin Sawicki 7d725d5597 Upgrade to language-xml@0.4.0 2014-02-17 11:25:37 -08:00
Kevin Sawicki dbfcd0c4d1 Upgrade to language-toml@0.9.0 2014-02-17 11:25:37 -08:00
Kevin Sawicki 55eff7cd69 Upgrade to language-todo@0.4.0 2014-02-17 11:25:37 -08:00
Kevin Sawicki 97951e38ad Upgrade to language-text@0.4.0 2014-02-17 11:25:37 -08:00
Kevin Sawicki 68f190ab9a Upgrade to language-sql@0.4.0 2014-02-17 11:25:37 -08:00
Kevin Sawicki a7edf10f1f Upgrade to language-source@0.4.0 2014-02-17 11:25:36 -08:00
Kevin Sawicki bd050a817d Update to language-shellscript@0.4.0 2014-02-17 11:25:36 -08:00
Kevin Sawicki 0c267f35ef Upgrade to language-sass@0.5.0 2014-02-17 11:25:36 -08:00
Kevin Sawicki 4437255f65 Upgrade to language-ruby-on-rails@0.6.0 2014-02-17 11:25:32 -08:00
Kevin Sawicki 85af8a2225 Upgrade to language-ruby@0.10.0 2014-02-17 11:15:53 -08:00
Kevin Sawicki db64dd5426 Upgrade to language-python@0.4.0 2014-02-17 11:15:24 -08:00
Kevin Sawicki 34732d059e Upgrade to language-puppet@0.4.0 2014-02-17 11:14:47 -08:00
Kevin Sawicki 8888de0256 Upgrade to language-property-list@0.4.0 2014-02-17 11:14:02 -08:00
Kevin Sawicki 87b7d9d5e3 Upgrade to language-php@0.5.0 2014-02-17 11:13:33 -08:00
Kevin Sawicki 67de3ceb5e Upgrade to language-perl@0.4.0 2014-02-17 11:13:11 -08:00
Kevin Sawicki 60b4554cb3 Upgrade to language-pegjs@0.3.0 2014-02-17 11:10:26 -08:00
Kevin Sawicki f7ae280760 Upgrade to language-objective-c@0.4.0 2014-02-17 11:09:43 -08:00
Kevin Sawicki 42320c5227 Upgrade to language-mustache@0.3.0 2014-02-17 11:09:09 -08:00
Kevin Sawicki 7f090fdac8 Upgrade to language-make@0.3.0 2014-02-17 11:08:30 -08:00
Kevin Sawicki 4c69abc7db Upgrade to language-less@0.3.0 2014-02-17 11:08:02 -08:00
Kevin Sawicki 3406b5ee1f Upgrade to language-json@0.4.0 2014-02-17 11:07:33 -08:00
Kevin Sawicki 2af12a7b7a Upgrade to language-javascript@0.7.0 2014-02-17 11:06:01 -08:00
Kevin Sawicki b3c3b55131 Upgrade to language-java@0.4.0 2014-02-17 11:05:14 -08:00
Kevin Sawicki 74aceb02fc Upgrade to language-hyperlink@0.5.0 2014-02-17 11:04:42 -08:00
Kevin Sawicki 4a36d2ee89 Upgrade to language-html@0.4.0 2014-02-17 11:03:23 -08:00
Kevin Sawicki de24128009 Upgrade to language-go@0.4.0 2014-02-17 11:02:45 -08:00
Kevin Sawicki 415c871b83 Upgrade to language-git@0.5.0 2014-02-17 11:01:08 -08:00
Kevin Sawicki 7f826dd005 Upgrade to language-gfm@0.17.0 2014-02-17 11:00:13 -08:00
Kevin Sawicki 408901360f Upgrade to language-css@0.4.0 2014-02-17 10:59:13 -08:00
Kevin Sawicki ec6accbc8b Upgrade to language-coffee-script@0.8.0 2014-02-17 10:58:03 -08:00
Kevin Sawicki 523460166f Upgrade to language-clojure@0.2.0 2014-02-17 10:56:29 -08:00
Kevin Sawicki df996695c8 Upgrade to language-c@0.5.0 2014-02-17 10:56:18 -08:00
Kevin Sawicki 86a9279743 Remove support for Syntaxes/Preferences directories
All existing packages have the lower-case version of these directory
names and `apm init --convert` generates them with lower case names.
2014-02-17 09:45:34 -08:00
Kevin Sawicki 53b423496f Only allow json and cson grammars 2014-02-17 09:44:08 -08:00
Kevin Sawicki ead21bfc33 Remove synchronous activation of TextMate packages 2014-02-17 09:40:47 -08:00
Kevin Sawicki ee14214c7a Measure activate time of TextMate packages 2014-02-17 09:38:50 -08:00
probablycorey 8f26feadb5 Assume cli files are executable 2014-02-14 17:53:31 -08:00
probablycorey 760d8c60ad Don't try and install cli commands if they are already symlinked.
Closes #1548
2014-02-14 17:43:54 -08:00
probablycorey bec5c9c9c9 Remove unnecessary chmod command 2014-02-14 17:43:54 -08:00
Kevin Sawicki 02a8a41427 Merge pull request #1547 from atom/ks-shutdown-errors
Remove shutdown errors
2014-02-14 17:03:20 -08:00
Kevin Sawicki d5f7e2a6e2 Remove remove() method 2014-02-14 15:45:28 -08:00
Kevin Sawicki 3e6e530b44 Delete socket file when atom.exit() is called
Previously the socket file was not being deleted when `apm test` was run
causing a noticeable delay the next time a window was opened and the
socket had to timeout before the window would display.
2014-02-14 15:27:29 -08:00
Kevin Sawicki c277a19781 Merge pull request #1545 from atom/ks-grammar-selector-cleanup
Changes based on cleaning up grammar-selector
2014-02-14 15:03:51 -08:00
Kevin Sawicki 3191697a38 Rename editorView to filterEditorView in specs 2014-02-14 14:48:32 -08:00
Kevin Sawicki 0cead13df7 Upgrade to grammar-selector@0.20.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki 59872889db Upgrade to symbols-view@0.34.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki da14629826 Upgrade to styleguide@0.24.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki 3bf551cefd Upgrade to spell-check@0.25.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki 85543888b4 Upgrade to fuzzy-finder@0.35.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki 37cd047c46 Upgrade to command-palette@0.17.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki e2dc48456d Upgrade to bookmarks@0.20.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki bf2a3d3ca4 Upgrade to autocomplete@0.23.0 2014-02-14 14:48:32 -08:00
Kevin Sawicki 63f7f01169 Tweak SelectListView comments 2014-02-14 14:48:32 -08:00
Kevin Sawicki 6d68c4eeea 💄 Wrap callbacks 2014-02-14 14:48:32 -08:00
Kevin Sawicki d91dd2f6ea Revert accidental require rename 2014-02-14 14:48:32 -08:00
Kevin Sawicki c91443825b Rename focusEditor to focusFilterEditor 2014-02-14 14:48:31 -08:00
Kevin Sawicki c31e981479 Mention viewForItem can return a String 2014-02-14 14:48:31 -08:00
Kevin Sawicki 2cefd4f4d6 Make storeFocusedElement public 2014-02-14 14:48:31 -08:00
Kevin Sawicki 2a9b1260c2 Rename editorView to filterEditorView 2014-02-14 14:48:31 -08:00
Kevin Sawicki e53feba1fd Add full example to header comment 2014-02-14 14:48:31 -08:00
Kevin Sawicki 24752ff006 Clean up docs 2014-02-14 14:48:31 -08:00
Kevin Sawicki 29ef6366ca Remove getViewClasses 2014-02-14 14:48:31 -08:00
Kevin Sawicki 06e782e920 Add spec for return element from viewForItem 2014-02-14 14:48:31 -08:00
Kevin Sawicki 6e29f08469 Throw error when methods are not implemented 2014-02-14 14:48:31 -08:00
Kevin Sawicki 52c1747aaf Update SelectListView spec for API changes 2014-02-14 14:48:31 -08:00
Kevin Sawicki b2973556d6 Call getSelectedItemView from getSelectedItem 2014-02-14 14:48:31 -08:00
Kevin Sawicki d0c2dfffb1 Use item in confirmSelection 2014-02-14 14:48:31 -08:00
Kevin Sawicki f3af21c5d2 Append view instead of item 2014-02-14 14:48:31 -08:00
Kevin Sawicki e5b4302407 Remove return type 2014-02-14 14:48:31 -08:00
Kevin Sawicki fc6aa2aa12 Rename filteredArray to filteredItems 2014-02-14 14:48:31 -08:00
Kevin Sawicki 883f6dd50b Add public API to set max items 2014-02-14 14:48:30 -08:00
Kevin Sawicki 8ac197074d selectItemView instead of selectItem 2014-02-14 14:48:30 -08:00
Kevin Sawicki d045bc9836 Rename data attribute to select-list-item 2014-02-14 14:48:30 -08:00
Kevin Sawicki d31c0f81d2 Rename viewClass to getViewClasses 2014-02-14 14:48:30 -08:00
Kevin Sawicki 5bad4c95c1 Rename miniEditor to editorView 2014-02-14 14:48:30 -08:00
Kevin Sawicki dc11573862 Outdent code block 2014-02-14 14:48:30 -08:00
Kevin Sawicki 4d42cb908d Rename getSelectedElement to getSelectedItem 2014-02-14 14:48:30 -08:00
Kevin Sawicki db2bb9274d Rename array ivar to items 2014-02-14 14:48:30 -08:00
Kevin Sawicki 0e3b6628f3 Call getFilterKey() instead of filterKey ivar 2014-02-14 14:48:30 -08:00
Kevin Sawicki 65dafd58c1 Doc that subclasses must implement confirmed(item) 2014-02-14 14:48:30 -08:00
Kevin Sawicki 0c0b082604 Mark viewClass as public 2014-02-14 14:48:30 -08:00
Kevin Sawicki 906fcf0929 Doc that subclasses must implement viewForItem 2014-02-14 14:48:30 -08:00
Kevin Sawicki 36458331f8 Rename itemForElement to viewForItem 2014-02-14 14:48:30 -08:00
Kevin Sawicki 4b1e44a967 Rename setArray to setItems 2014-02-14 14:48:30 -08:00
Kevin Sawicki c7855dbcd3 Upgrade to whitespace@0.13.0 2014-02-14 09:24:48 -08:00
Nathan Sobo 950a0ce153 Merge pull request #1492 from atom/ns-fix-softwrap
Fix whacky soft-wrap issues
2014-02-14 18:35:12 +02:00
Nathan Sobo d64fefd96c Merge branch 'master' into ns-fix-softwrap
Conflicts:
	src/row-map.coffee
2014-02-14 08:36:58 -07:00
Kevin Sawicki 7f903bc6e7 Merge pull request #1544 from atom/ks-publish-doc
Publishing doc
2014-02-13 17:27:34 -08:00
Kevin Sawicki d4dfdd17ff Remove stray g 2014-02-13 15:37:10 -08:00
Kevin Sawicki 2e8bf53a04 Outdent list 2014-02-13 15:37:10 -08:00
Kevin Sawicki d9262a8415 Remove extra space 2014-02-13 15:37:10 -08:00
Kevin Sawicki 504ec58d93 Lowercase package 2014-02-13 15:37:10 -08:00
Kevin Sawicki 3de158bbdd Link to http://guides.github.com/overviews/desktop 2014-02-13 15:37:10 -08:00
Kevin Sawicki 6cd3ef4a6c Wrap at 80 2014-02-13 15:37:10 -08:00
Kevin Sawicki d5c8b052c6 Tweak pre-req checks 2014-02-13 15:37:10 -08:00
Kevin Sawicki ffdbefc0f4 List out what publish command does before running 2014-02-13 15:37:10 -08:00
Kevin Sawicki fccddd9200 Remove stray ] 2014-02-13 15:37:09 -08:00
Kevin Sawicki bdb37c4dee Remove extra newline 2014-02-13 15:37:09 -08:00
Kevin Sawicki 4b28cc78b1 Drop ./ from link 2014-02-13 15:37:09 -08:00
Kevin Sawicki 28032cb257 Use link name 2014-02-13 15:37:09 -08:00
Kevin Sawicki 75c3197a62 Link to publish doc from converting docs 2014-02-13 15:37:09 -08:00
Kevin Sawicki e0459fa069 Link to publish from your first package doc 2014-02-13 15:37:09 -08:00
Kevin Sawicki 8f9d845683 People can now install it 2014-02-13 15:37:09 -08:00
Kevin Sawicki 7caece7c77 Tweak wording around versioning 2014-02-13 15:37:09 -08:00
Kevin Sawicki e279c75653 Add name check and post publish instructions 2014-02-13 15:37:09 -08:00
Kevin Sawicki f678d836fa Add initial publishing doc 2014-02-13 15:37:09 -08:00
probablycorey 131a457da8 Upgrade to imave-view@0.23.0 2014-02-13 15:26:57 -08:00
Kevin Sawicki df4e791f47 Update apm for publish tweaks 2014-02-13 15:25:01 -08:00
Corey Johnson 752d028581 Merge pull request #1543 from atom/cz-non-admin-command-install
Enable privilege escalation when install command
2014-02-13 14:51:44 -08:00
Corey Johnson 543a2ad266 Merge pull request #1539 from atom/cj-move-openers-to-workspace
Cj move openers to workspace
2014-02-13 14:23:11 -08:00
probablycorey c2fe0b7aa1 Replace editor with item 2014-02-13 13:58:23 -08:00
probablycorey 9e0436d10e Always check existing active for uri first 2014-02-13 13:57:59 -08:00
probablycorey b3550c6526 Use full url when opening uri 2014-02-13 13:55:37 -08:00
probablycorey 75745bccc7 🔥 moar whitespace 2014-02-13 11:03:58 -08:00
probablycorey 93bd0c8412 🔥 whitespace 2014-02-13 11:00:29 -08:00
probablycorey f473bfdb95 Move actual opener logic back to project.
Not all specs create a workspace and workspaceView, so there were
failures. They probably SHOULD all have workspace and workspaceView
but that is beyond the scope of this PR.
2014-02-13 10:52:07 -08:00
probablycorey 9300ee0f47 Fix spec 2014-02-13 10:08:08 -08:00
probablycorey c7bd1f0a87 Use string because it is easier to read 2014-02-13 10:03:44 -08:00
probablycorey 763c5053ad Shell commands installed on startup don't ask for admin privleges 2014-02-13 10:00:18 -08:00
probablycorey 3053760880 Update error message 2014-02-13 09:54:03 -08:00
probablycorey a428b03db5 Combine all command creation methods 2014-02-13 09:53:55 -08:00
Kevin Sawicki 0153bb538b Upgrade apm for publish command tweaks 2014-02-13 09:26:18 -08:00
probablycorey 1f47e7ae64 Remove check for /usr/local/bin 2014-02-13 08:40:48 -08:00
Cheng Zhao a78dff15c4 Use "error?" to check error. 2014-02-13 21:42:10 +08:00
Cheng Zhao def39f94df Use runas to do the install when got EACESS error. 2014-02-13 20:47:52 +08:00
Cheng Zhao 382afba835 Upgrade to runas@0.5.x 2014-02-13 20:36:39 +08:00
Cheng Zhao 0358e9ad54 Merge pull request #1542 from atom/atom-shell-v0.9.2
Upgrade to atom-shell@v0.9.2
2014-02-13 14:14:49 +08:00
Cheng Zhao 8f4bf6d897 Upgrade to atom-shell@v0.9.2 2014-02-13 14:07:11 +08:00
probablycorey 6428d1cb60 Upgrade to markdown-preview@0.29.0 2014-02-12 17:26:48 -08:00
probablycorey 6b4e68f127 💄 2014-02-12 17:24:47 -08:00
probablycorey 9e9cdaecc0 Delegate methods correctly 2014-02-12 17:24:27 -08:00
probablycorey 410f573095 Make addEditor and removeEditor private methods on project 2014-02-12 17:19:50 -08:00
probablycorey 41761ffbcf Move eachEditor and getEditors to Workspace 2014-02-12 17:19:25 -08:00
probablycorey ee09eee374 Move (un)registerOpener to Workspace 2014-02-12 17:12:48 -08:00
Kevin Sawicki a57c58d5d9 Upgrade to image-view@0.21.0 2014-02-12 16:56:18 -08:00
Kevin Sawicki 1d3163cda1 📝 Outdent code block 2014-02-12 16:34:08 -08:00
probablycorey e3505fd45b Prepare 0.50.0 release 2014-02-12 16:33:05 -08:00
probablycorey 5461de5856 Wait 5 seconds before downloading update.
And don't show 'check for updates' menu item on launch.
2014-02-12 16:17:36 -08:00
probablycorey 88b214067f 🔥 whitespace 2014-02-12 16:08:40 -08:00
probablycorey 5304afd69a Check for updates 10 seconds after atom launches 2014-02-12 16:07:41 -08:00
probablycorey a99c404a78 Merge branch 'cj-remove-openSingletonSync' 2014-02-12 14:30:49 -08:00
probablycorey 6b971e36b0 Upgrade to find-and-replace@0.83.0 2014-02-12 14:23:16 -08:00
probablycorey e550d8a3bc Remove Workspace:openSingletonSync 2014-02-12 14:11:41 -08:00
Kevin Sawicki f3ff802aa4 Upgrade to settings-view@0.72.0 2014-02-12 13:08:08 -08:00
Kevin Sawicki 52241a45df Merge pull request #1536 from atom/ks-synchronize-cursor-blink
Blink all cursors in same interval
2014-02-12 13:07:39 -08:00
Kevin Sawicki 86b19c1ffc Remove unneeded if/else 2014-02-12 13:01:47 -08:00
Kevin Sawicki 680e1cc80a Inline style variable 2014-02-12 13:01:47 -08:00
Kevin Sawicki 017cc23bbf Remove unused param 2014-02-12 13:01:47 -08:00
Kevin Sawicki d49bb2416b Use subscribe instead of namespace 2014-02-12 13:01:47 -08:00
Kevin Sawicki 1d2c3bce20 Remove unused requires 2014-02-12 13:01:47 -08:00
Kevin Sawicki 48f69880e0 💄 Use this instead of @ 2014-02-12 13:01:47 -08:00
Kevin Sawicki ed7de42ba0 Use single interval to blink all cursors 2014-02-12 13:01:47 -08:00
Kevin Sawicki 95c4e2170b 📝 Outdent code block 2014-02-12 11:45:00 -08:00
Kevin Sawicki 4e2218b005 Use @ instead of EditorView prefix 2014-02-12 08:59:06 -08:00
Kevin Sawicki 8b83918a24 📝 Doc params in window.coffee 2014-02-12 08:54:16 -08:00
Kevin Sawicki a1ce1c9ef6 📝 . instead of , 2014-02-12 08:43:16 -08:00
Cheng Zhao 0419ae8712 Use new runas API for grunt install on Windows. 2014-02-12 22:23:14 +08:00
Cheng Zhao d8737ba4a1 Upgrade to runas@0.4.0 2014-02-12 22:08:56 +08:00
Cheng Zhao 9bd1835ea1 Merge pull request #1529 from atom/privilege-escalation
Ask for privilege escalation when writing file on OS X
2014-02-12 20:47:00 +08:00
Cheng Zhao 823a79610f 💄 "Private:" is not needed anymore. 2014-02-12 20:41:09 +08:00
Cheng Zhao 3929189e7a Merge branch 'master' into privilege-escalation
Conflicts:
	src/text-buffer.coffee
2014-02-12 19:32:49 +08:00
Kevin Sawicki fb73240654 Guard against non-existent .workspace element 2014-02-11 17:13:37 -08:00
Kevin Sawicki cc890ebdc0 Add editor.fontFamily config default
This causes it to display in the settings view.
2014-02-11 17:00:25 -08:00
Corey Johnson 7708d645c9 Merge pull request #1526 from atom/ks-remove-immediate-and-sync-activate-calls
Remove immediate/sync option to activatePackage
2014-02-11 16:56:49 -08:00
Kevin Sawicki 29cbea4d50 📝 optional not option 2014-02-11 16:53:36 -08:00
Kevin Sawicki 8b1b3d237d Init pendingUpdateOperation in ctor 2014-02-11 16:53:00 -08:00
Kevin Sawicki 7d7f208fc5 Add missing keybidings to menu
This was caused by the test element not simulating a div element
with the .workspace class.
2014-02-11 16:48:32 -08:00
probablycorey 1302a38ddf Upgrade to find-and-replace@0.82.0 2014-02-11 16:47:44 -08:00
Kevin Sawicki f9d70e5623 Make skipped specs yellowish 2014-02-11 16:19:46 -08:00
Kevin Sawicki 0e60d73b10 Use info alert until suite completes or failure occurs 2014-02-11 16:18:43 -08:00
Kevin Sawicki 136928f36e Merge pull request #1534 from atom/ks-move-lines-around-folds
Handle moving lines around folds
2014-02-11 16:06:23 -08:00
Kevin Sawicki d6fc3e6d01 Move insertDelta computation under transact call 2014-02-11 15:55:32 -08:00
Kevin Sawicki 04d8584742 Use fold directly 2014-02-11 15:55:32 -08:00
Kevin Sawicki de88d6b624 Support moving up folds around folds 2014-02-11 15:55:32 -08:00
Kevin Sawicki 32a15796c1 Mention screen rows are used 2014-02-11 15:55:32 -08:00
Kevin Sawicki 905e456a15 Only fold valid buffer rows 2014-02-11 15:55:32 -08:00
Kevin Sawicki 04c59952d5 Support moving down folds around folds 2014-02-11 15:55:32 -08:00
Kevin Sawicki a93bfb5f8c Make sure moved lines don't go into a fold 2014-02-11 15:55:32 -08:00
Kevin Sawicki 2579f2993b 💄 folded not folder 2014-02-11 15:55:32 -08:00
Kevin Sawicki f9cdc4883e Move around folds when moving lines down 2014-02-11 15:55:32 -08:00
Kevin Sawicki d8da977b20 Add failing spec 2014-02-11 15:55:31 -08:00
Kevin Sawicki 4d230a0517 📝 Pluralize line 2014-02-11 15:55:31 -08:00
Kevin Sawicki 258218b166 Merge pull request #1532 from atom/ks-font-size-commands
Consistent font size commands
2014-02-11 15:55:10 -08:00
Kevin Sawicki 211d222291 Remove auto-indent conflict with increase zoom 2014-02-11 15:40:12 -08:00
Kevin Sawicki dda412d5ec Add window:reset-font-size command 2014-02-11 15:40:12 -08:00
Kevin Sawicki d7fabc5a58 Map cmd-_ to window:decrease-font-size
Makes it consistent with increase-font-size having two keybindings
2014-02-11 15:40:12 -08:00
Kevin Sawicki 16ab2031fa Upgrade to markdown-preview@0.28.0 2014-02-11 15:13:32 -08:00
probablycorey 0ea03bc389 Upgrade to markdown-preview@0.28.0 2014-02-11 12:52:35 -08:00
probablycorey 1bc38c191f Upgrade to markdown-preview@0.27.0 2014-02-11 12:44:41 -08:00
probablycorey c6baed045d Merge remote-tracking branch 'origin/master' into ks-remove-immediate-and-sync-activate-calls
Conflicts:
	package.json
2014-02-11 12:29:02 -08:00
probablycorey 71ae6b28dd Upgrade to markdown-preview@0.26.0 2014-02-11 11:40:12 -08:00
probablycorey 57e7335907 Merge branch 'cj-update-markdown-preview'
Conflicts:
	src/pane.coffee
2014-02-11 11:33:46 -08:00
Corey Johnson 15442c3dba Merge pull request #1527 from atom/cj-update-markdown-preview
Changes inspired by Markdown Preview
2014-02-11 11:27:02 -08:00
probablycorey d5c4b74608 🔥 whitespace 2014-02-11 10:58:32 -08:00
probablycorey a2fcc7aa7a Add Workspace::getActiveEditor and Pane::getActiveEditor 2014-02-11 10:58:24 -08:00
Kevin Sawicki de0aba6165 Merge pull request #1528 from atom/ks-spec-runner-ui
Tweak spec reporter styles
2014-02-11 09:33:30 -08:00
probablycorey 4b529ae167 Make methods private 2014-02-11 09:33:12 -08:00
Kevin Sawicki 848d77d3eb Show 0 failures when all pass 2014-02-11 09:23:12 -08:00
Kevin Sawicki 069ead6b1c Show failure count at end 2014-02-11 09:21:21 -08:00
Kevin Sawicki aef3332a09 Set suite description as text 2014-02-11 09:06:14 -08:00
Kevin Sawicki 4bfc0e8ea1 Remove ivars assigned in initialize 2014-02-11 09:06:14 -08:00
Kevin Sawicki c19c4a5e27 Remove unused class 2014-02-11 09:06:13 -08:00
Kevin Sawicki 750e3565fd Remove unused margin styles 2014-02-11 09:06:13 -08:00
Kevin Sawicki 0eb874864c Remove unused specFilter method 2014-02-11 09:06:13 -08:00
Kevin Sawicki 4c60c40eb8 Nest list-unstyled rule 2014-02-11 09:06:13 -08:00
Kevin Sawicki 830a8ddc03 Use bootstrap tooltips 2014-02-11 09:06:13 -08:00
Kevin Sawicki d9b14dc492 💄 Use Date.now() 2014-02-11 09:06:13 -08:00
Kevin Sawicki 4743cf89dc Ignore lines after the first jasmine line 2014-02-11 09:06:13 -08:00
Kevin Sawicki b6710b54cf Add comment about package specs label 2014-02-11 09:06:13 -08:00
Kevin Sawicki d9e4b9d199 Remove redundant spec count 2014-02-11 09:06:13 -08:00
Kevin Sawicki 6a408a3a55 Make symbol-header font size 18px 2014-02-11 09:06:13 -08:00
Kevin Sawicki 4b2e8f8713 Use fold/unfold octicons 2014-02-11 09:06:13 -08:00
Kevin Sawicki c882d73527 Add it prefix to failure descriptions 2014-02-11 09:06:13 -08:00
Kevin Sawicki fd005380b0 Use package name in label 2014-02-11 09:06:12 -08:00
Kevin Sawicki 6776fa4f0d Remove border from symbol area 2014-02-11 09:06:12 -08:00
Kevin Sawicki 8be5f7d6c8 Use bootstrap to style spec reporter 2014-02-11 09:06:12 -08:00
Kevin Sawicki 1c51f512ea Add symbol-area class 2014-02-11 09:06:12 -08:00
Kevin Sawicki 0d724bb00d Drop colon suffix 2014-02-11 09:06:12 -08:00
Kevin Sawicki 8b94fef806 Use alert class for status area 2014-02-11 09:06:12 -08:00
Kevin Sawicki 919fafc7a4 Trim stack trace lines 2014-02-11 09:06:12 -08:00
Kevin Sawicki 89b240cd4f Use pre element for stack traces 2014-02-11 09:06:12 -08:00
Kevin Sawicki 91bd852812 Use hyphen separated class names 2014-02-11 09:06:12 -08:00
Kevin Sawicki 99c2c32e1e Nest styles 2014-02-11 09:06:12 -08:00
Kevin Sawicki ecf4dbefe3 Sanitize duplicate error and [object Object].<anonymous> lines 2014-02-11 09:06:12 -08:00
Kevin Sawicki cf73dd467a Pad stack traces 2014-02-11 09:06:11 -08:00
Kevin Sawicki 05769f8a49 💄 One property per line 2014-02-11 09:06:11 -08:00
probablycorey 51fbb1be07 Add Pane::getActiveItem 2014-02-11 08:59:34 -08:00
probablycorey af1f57048b Add Pane::getActiveItem 2014-02-11 08:55:45 -08:00
Kevin Sawicki 0e62841320 Merge pull request #1524 from atom/ks-clear-conflict-on-save
Clear conflict on save
2014-02-11 08:52:48 -08:00
Kevin Sawicki d9ddf516f8 📝 Clarify TextBuffer::isInConflict 2014-02-11 08:46:21 -08:00
Kevin Sawicki 1436b8eb5e Rename path variables to filePath 2014-02-11 08:46:00 -08:00
Kevin Sawicki 1645efa2ce Clear conflict when the buffer is saved 2014-02-11 08:46:00 -08:00
Cheng Zhao d0fe2c9a5b Cache content after file is written successfully. 2014-02-11 15:10:41 +08:00
Cheng Zhao 84ee94dfd1 Support privilege escalation when writing file. 2014-02-11 14:58:15 +08:00
Cheng Zhao f585f53144 Upgrade to runas@0.4.0 2014-02-11 14:57:51 +08:00
Kevin Sawicki 9b3cdd00c8 Upgrade to language-gfm@0.16.0 2014-02-10 21:12:05 -08:00
Kevin Sawicki b650043191 Upgrade to background-tips@0.7.0 2014-02-10 16:33:12 -08:00
probablycorey 6f422ce56b Upgrade to autosave@0.11.0 2014-02-10 16:32:48 -08:00
Kevin Sawicki abe630937e Upgrade to bookmarks@0.19.0 2014-02-10 16:26:03 -08:00
probablycorey 7cccd5f920 Upgrade to autoflow@0.14.0 2014-02-10 16:22:52 -08:00
probablycorey e4f6eb17a0 Upgrade to archive-view@0.22.0 2014-02-10 16:17:18 -08:00
probablycorey 3951c45519 Update apm 2014-02-10 16:04:56 -08:00
probablycorey 2a2858554a Remove synchronous package loading shims 2014-02-10 15:52:34 -08:00
probablycorey 5b6e0b769d Fix specs for Tokenized Buffer 2014-02-10 15:52:34 -08:00
probablycorey c189dc22d7 Remove focused specs 2014-02-10 15:52:34 -08:00
probablycorey d2abbb3681 Fix specs for Syntax 2014-02-10 15:52:34 -08:00
probablycorey 8df791c949 Fix specs for Language Mode 2014-02-10 15:52:34 -08:00
probablycorey 1d4cab404d Fix specs for Editor View 2014-02-10 15:52:34 -08:00
probablycorey 1f3ea76379 Update Editor spec 2014-02-10 15:52:33 -08:00
probablycorey e01be5d41a Update display buffer spec 2014-02-10 15:52:33 -08:00
probablycorey 13e435a4f9 Update Atom Spec 2014-02-10 15:52:33 -08:00
probablycorey 3592ec19df Don't use activation events on fixture package with serialization error 2014-02-10 15:52:33 -08:00
Kevin Sawicki b49bd6fd10 Upgrade to github-sign-in@0.19.0 2014-02-10 15:36:50 -08:00
Kevin Sawicki 2d16d3a459 Upgrade to keybinding-resolve@0.10.0 2014-02-10 15:33:58 -08:00
Kevin Sawicki 72f2824588 Upgrade to language-gfm@0.15.0 2014-02-10 15:32:01 -08:00
Kevin Sawicki a229c28e62 Upgrade to language-toml@0.8.0 2014-02-10 15:30:58 -08:00
Kevin Sawicki b6576545ba Upgrade to release-notes@0.20.0 2014-02-10 15:20:56 -08:00
Kevin Sawicki e8c0793874 Upgrade to spell-check@0.24.0 2014-02-10 15:16:53 -08:00
Kevin Sawicki 508636c06e Upgrade to update-package-dependencies@0.3.0 2014-02-10 15:14:10 -08:00
Kevin Sawicki ca49ac1730 Upgrade to visual-bell@0.7.0 2014-02-10 15:13:43 -08:00
Kevin Sawicki 44c4bc8434 Upgrade to whitespace@0.12.0 2014-02-10 15:12:02 -08:00
Kevin Sawicki a2fb288745 Upgrade to metrics@0.26.0 2014-02-10 15:02:14 -08:00
Kevin Sawicki c00c5c97f1 Remove unused file extension API 2014-02-10 14:43:47 -08:00
Kevin Sawicki 2248bbf8fb Remove unused ivars 2014-02-10 14:43:28 -08:00
Kevin Sawicki 256a9bf08a Upgrade to language-gfm@0.14.0 2014-02-10 14:30:28 -08:00
Kevin Sawicki 4d3b4529f1 Upgrade to link@0.17.0 2014-02-10 14:30:05 -08:00
Corey Johnson 723ebff69a Merge pull request #1518 from atom/cj-make-package-activation-consistent
Make package loading options consistent and asynchronous
2014-02-10 14:18:27 -08:00
probablycorey ffb7093cf3 Merge branch 'cj-make-package-activation-consistent' into cj-update-markdown-preview
Conflicts:
	src/deserializer-manager.coffee
	src/workspace.coffee
2014-02-10 14:17:46 -08:00
probablycorey d415ec9a00 Add custom load and activate method to Theme Package 2014-02-10 13:39:38 -08:00
Kevin Sawicki 2e8962501d Add hyphen between text and mate 2014-02-10 13:30:40 -08:00
Kevin Sawicki 8425c15cd7 💄 Use Array::filter instead of for/in/when 2014-02-10 13:21:08 -08:00
Kevin Sawicki f9f2688468 Upgrade to snippets@0.27.0 2014-02-10 12:18:15 -08:00
Kevin Sawicki ad0bb5098f Upgrade to wrap-guide@0.14.0 2014-02-10 12:05:56 -08:00
Kevin Sawicki 81e86c1467 📝 Remove Internal: comment 2014-02-10 11:48:21 -08:00
Kevin Sawicki 0724dd7a7c Remove unused requires 2014-02-10 11:47:07 -08:00
Kevin Sawicki 92b76e61c4 Revert apm change 2014-02-10 11:46:22 -08:00
Kevin Sawicki 8eee4d87be Guard against missing workspace view 2014-02-10 11:41:08 -08:00
probablycorey e6d7413af1 Always call deactivate on loaded packages 2014-02-10 11:24:02 -08:00
Kevin Sawicki 6685464229 Treat spec description as text instead of html 2014-02-10 10:56:56 -08:00
Kevin Sawicki 20772d045c Upgrade to background-tips@0.6.0 2014-02-10 10:04:51 -08:00
Kevin Sawicki 33b7c915eb Upgrade to symbols-view@0.33.0 2014-02-10 09:30:59 -08:00
Kevin Sawicki 31a154d7eb Use subscription to track if disabled packages are observed 2014-02-10 09:17:15 -08:00
probablycorey f0197632a3 Upgrade to fuzzy-finder@0.34.0 2014-02-07 21:29:37 -08:00
probablycorey ae7306572b Guard against empty activationDeferred var 2014-02-07 21:00:50 -08:00
Kevin Sawicki 1a81248c88 💄 Remove extra space 2014-02-07 17:14:24 -08:00
probablycorey 8d40e4df10 Merge remote-tracking branch 'origin/master' into cj-make-package-activation-consistent
Conflicts:
	package.json
	src/package-manager.coffee
	src/text-mate-package.coffee
2014-02-07 16:53:24 -08:00
Kevin Sawicki 431688e44c Remove unused require 2014-02-07 16:33:28 -08:00
Kevin Sawicki f10a70eaf4 Implement TextMatePackage.activateSync 2014-02-07 16:32:34 -08:00
probablycorey 282fb66e75 Reject and remove activation deferral on deactivation 2014-02-07 16:30:10 -08:00
Kevin Sawicki a131a03f28 Don't bundle unused jasmine-reporters/ext folder 2014-02-07 16:18:49 -08:00
Kevin Sawicki 713d7332b3 Update jasmine.js filter pattern 2014-02-07 16:09:43 -08:00
probablycorey 00f30eaf6c Make immediate package loading work 2014-02-07 15:50:48 -08:00
Kevin Sawicki f01a2a91f9 Remove spec/suite time logging
This isn't really helpful anymore now that the specs run in parallel
2014-02-07 15:44:11 -08:00
probablycorey e51c94b940 Downgrade to feedback@0.23.0 2014-02-07 15:29:25 -08:00
Kevin Sawicki fe5640df4b Return promise if it already exists
This prevents successive calls to atom.packages.activatePackage from
activating an AtomPackage multiple times.
2014-02-07 15:23:53 -08:00
Kevin Sawicki 42a777e822 Upgrade to gists@0.17.0 2014-02-07 15:13:50 -08:00
probablycorey 73cc1dadae Upgrade to fuzzy-finder@0.34.0 2014-02-07 15:13:24 -08:00
probablycorey 4b9aa18628 Upgrade to feedback@0.23.0 2014-02-07 15:10:49 -08:00
Kevin Sawicki 163150dc87 Upgrade to git-diff@0.24.0 2014-02-07 15:09:48 -08:00
Kevin Sawicki f3be876065 Upgrade to grammar-selector@0.19.0 2014-02-07 15:09:48 -08:00
probablycorey e499e32c24 Upgrade to editor-stats@0.13.0 2014-02-07 15:03:17 -08:00
Kevin Sawicki 3534ac0f32 Upgrade to image-view@0.19.0 2014-02-07 15:01:41 -08:00
probablycorey ac6675380c Upgrade to dev-live-reload@0.24.0 2014-02-07 15:01:01 -08:00
Kevin Sawicki c1e8505ebf Upgrade to link@0.16.0 2014-02-07 14:59:35 -08:00
Kevin Sawicki e567702e3f Upgrade to metrics@0.25.0 2014-02-07 14:58:13 -08:00
Kevin Sawicki 5d2c6ea4b4 Upgrade to package-generator@0.26.0 2014-02-07 14:55:58 -08:00
Kevin Sawicki df1a792675 Upgrade to settings-view@0.71.0 2014-02-07 14:52:17 -08:00
Kevin Sawicki 9c1fa74d2f Upgrade to snippets@0.26.0 2014-02-07 14:52:17 -08:00
Kevin Sawicki 009cbfd418 Upgrade to snippets@0.25.0 2014-02-07 14:52:17 -08:00
probablycorey 81fd2bbf2e Upgrade to command-pallete@0.16.0 2014-02-07 14:31:04 -08:00
probablycorey d5222f22ea Upgrade to bracket-matcher@0.20.0 2014-02-07 14:27:37 -08:00
Kevin Sawicki 69545cba61 Upgrade to symbols-view@0.32.0 2014-02-07 14:25:40 -08:00
probablycorey 625a61a18f Upgrade to autoflow@0.13.0 2014-02-07 14:12:16 -08:00
probablycorey 2d93402858 Update to autocomplete@0.22.0 2014-02-07 14:03:18 -08:00
Kevin Sawicki efbf961c4b Upgrade to tabs@0.19.0 2014-02-07 14:00:38 -08:00
Kevin Sawicki d64ff4d598 Upgrade to tree-view@0.69.0 2014-02-07 13:58:42 -08:00
Kevin Sawicki c81fcac108 Upgrade to tree-view@0.68.0 2014-02-07 13:57:43 -08:00
Kevin Sawicki 01f3f88c6c Upgrade to whitespace@0.11.0 2014-02-07 13:51:33 -08:00
Kevin Sawicki fa45af588e Upgrade to wrap-guide@0.13.0 2014-02-07 13:50:11 -08:00
Kevin Sawicki 802ec9d8c2 Upgrade to command-logger@0.11.0 2014-02-07 13:47:04 -08:00
Kevin Sawicki cce64cb9e8 Don't bundle obj.target and .deps build folders 2014-02-07 13:27:05 -08:00
Kevin Sawicki b38702d754 Upgrade to styleguide@0.23.0 2014-02-07 13:11:20 -08:00
Kevin Sawicki 6a9268cb38 Upgrade to clean language- packages
All unused files and folders have been removed from these packages.
2014-02-07 12:58:28 -08:00
Kevin Sawicki 246bbc7862 Upgrade to git-utils 1.x 2014-02-07 12:27:52 -08:00
Kevin Sawicki 7428431609 Don't bundle bootstrap examples 2014-02-07 12:15:29 -08:00
Kevin Sawicki f9308fd9fc Filter apm folter using standard node_modules filter
This reduces the apm folder size in the built app by 4MB
2014-02-07 12:13:51 -08:00
Kevin Sawicki 504a55304e Upgrade to settings-view@0.70.0 2014-02-07 11:27:16 -08:00
Kevin Sawicki 651177bc0c Upgrade apm for available command tweaks 2014-02-07 11:25:45 -08:00
probablycorey d9a47f256c Update specs 2014-02-07 11:21:52 -08:00
probablycorey 9a51c24937 Make AtomPackage:activate return a promise that is fulfilled when the
package is activated.
2014-02-07 11:21:42 -08:00
probablycorey 28f0bf645f Remove Package::isActive
It didn't seem needed anymore
2014-02-07 11:20:33 -08:00
probablycorey 0f68f095f1 Remove load and activate methods from ThemePackage
I assume these were added to speed theme loading, but now that promises
are being used it complicates overriding methods. From my tests removing
these methods and relying on Atom Package's methods added ~2 ms per 
theme.
2014-02-07 11:18:44 -08:00
probablycorey 7686b348b1 Upgrade to q@1.0.0 2014-02-07 11:16:30 -08:00
Kevin Sawicki fc67aa016a Merge pull request #1523 from atom/ks-init-dot-coffee
Rename ~/.atom/user.coffee to ~/.atom/init.coffee
2014-02-07 10:13:03 -08:00
Kevin Sawicki 422c0e36cb Assert init.coffee and styles.css are copied 2014-02-07 09:54:58 -08:00
Kevin Sawicki 0bbc631607 📝 Update docs for user.coffee rename 2014-02-07 09:52:55 -08:00
Kevin Sawicki fbdf16a8fa Use soft wrap instead of font size in example hack 2014-02-07 09:51:24 -08:00
Kevin Sawicki 23af7b4072 Make font-size larger than the default 2014-02-07 09:51:24 -08:00
Kevin Sawicki 4219d06bd9 📝 Doc ~/.atom/init.coffee 2014-02-07 09:51:24 -08:00
Kevin Sawicki e6e43f6884 Add Open Your Init Script command 2014-02-07 09:51:24 -08:00
Kevin Sawicki e52a4c1588 Rename user.coffee to init.coffee 2014-02-07 09:51:24 -08:00
Kevin Sawicki efac59be9b 📝 Use quotes for inserted text 2014-02-07 09:51:04 -08:00
Kevin Sawicki c2199e9c21 📝 Doc keymap snippet 2014-02-07 09:50:46 -08:00
Kevin Sawicki 8a9d4d8eea Upgrade to snippets@0.25.0 2014-02-07 09:48:44 -08:00
Kevin Sawicki 837d91c220 Merge pull request #1520 from atom/ks-tom-doc
Clarify TomDoc usage
2014-02-07 09:16:10 -08:00
Kevin Sawicki a49340dd6c 📝 doc parameters in workspace.coffee 2014-02-06 17:34:51 -08:00
Kevin Sawicki dfdab3d006 📝 doc parameters in theme-manager.coffee 2014-02-06 17:33:29 -08:00
Kevin Sawicki 25a9ca4224 📝 doc parameters in task.coffee 2014-02-06 17:32:44 -08:00
Kevin Sawicki f4873646c9 📝 doc parameters in syntax.coffee 2014-02-06 17:22:37 -08:00
Kevin Sawicki da9a7a18dd 📝 doc parameters in selection.coffee 2014-02-06 17:16:31 -08:00
Kevin Sawicki f213389db8 📝 doc parameters in select-list-view.coffee 2014-02-06 17:02:07 -08:00
Kevin Sawicki bca9f81be1 📝 doc parameters in project.coffee 2014-02-06 17:00:40 -08:00
Kevin Sawicki e5c31495cb 📝 doc parameters in pane.coffee 2014-02-06 16:55:19 -08:00
Kevin Sawicki 1e69ede779 📝 doc parameters in package-manager.coffee 2014-02-06 16:52:22 -08:00
Kevin Sawicki f24389a45b 📝 doc parameters in menu-manager.coffee 2014-02-06 16:51:39 -08:00
Kevin Sawicki 695fd441fb Upper case Object 2014-02-06 16:50:46 -08:00
Kevin Sawicki 8cd164ef5e 📝 doc parameters in keymap.coffee 2014-02-06 16:39:23 -08:00
Kevin Sawicki dbbfb9ae7d 📝 doc parameters in file.coffee 2014-02-06 16:37:12 -08:00
Kevin Sawicki 18348b8738 📝 doc parameters in editor-view.coffee 2014-02-06 16:35:32 -08:00
Kevin Sawicki c4cb6abef1 📝 doc parameters in editor.coffee 2014-02-06 16:30:30 -08:00
Kevin Sawicki c9ee68651d 📝 doc parameters in directory.coffee 2014-02-06 16:21:11 -08:00
Kevin Sawicki 709c70c4c4 📝 doc parameters in deserializer-manager.coffee 2014-02-06 16:17:27 -08:00
Kevin Sawicki fd7c2e92c5 📝 doc parameters in cursor.coffee 2014-02-06 16:03:00 -08:00
Kevin Sawicki bbce381e16 Add object keys to example 2014-02-06 15:55:13 -08:00
Kevin Sawicki a46fcc1985 📝 doc parameters in context-menu-manager.coffee 2014-02-06 15:50:21 -08:00
Kevin Sawicki de914193ff Upgrade to biscott@0.6.0 2014-02-06 15:46:25 -08:00
Kevin Sawicki b80c43db7b 📝 doc parameters in clipboard.coffee 2014-02-06 15:46:02 -08:00
Kevin Sawicki 83cc6a76de 📝 doc parameters in buffered-process.coffee 2014-02-06 15:38:59 -08:00
Kevin Sawicki d21b5ae75b 📝 doc parameters in atom.coffee 2014-02-06 15:34:47 -08:00
Kevin Sawicki 406743f0fb Upgrade to biscotto@0.5.0 2014-02-06 15:27:27 -08:00
Kevin Sawicki acc5c18ba3 Remove trailing slashes 2014-02-06 14:38:14 -08:00
Kevin Sawicki f0ca685a16 Add method reference 2014-02-06 14:28:43 -08:00
Kevin Sawicki b001e7e28f Add example comment 2014-02-06 14:28:10 -08:00
Kevin Sawicki 1ab12b436a Add documentation styleguide to CONTRIBUBING.md 2014-02-06 14:20:08 -08:00
Kevin Sawicki 9f67978513 Remove doc proposal 2014-02-06 14:08:17 -08:00
Kevin Sawicki ff1440be26 Merge pull request #1519 from atom/ks-remove-config-observer
Remove ConfigObserver
2014-02-06 14:06:09 -08:00
probablycorey 7a9a1ca213 Allow sync or immediate to be used (prefer immediate) 2014-02-06 13:47:18 -08:00
Kevin Sawicki 35beaf44a9 Upgrade to fuzzy-finder@0.33.0 2014-02-06 13:41:50 -08:00
Kevin Sawicki 63c24cd6e9 Upgrade to release-notes@0.18.0 2014-02-06 13:35:03 -08:00
Kevin Sawicki 6d6f41b212 Upgrade to spell-check@0.23.0 2014-02-06 13:32:40 -08:00
Kevin Sawicki af52ad9124 Upgrade to tree-view@0.68.0 2014-02-06 13:31:26 -08:00
Kevin Sawicki 8cf498e7e3 Upgrade to wrap-guide@0.13.0 2014-02-06 13:28:19 -08:00
Kevin Sawicki 2bbae7090e Upgrade to settings-view@0.69.0 2014-02-06 13:16:01 -08:00
Kevin Sawicki cb6ba3c418 Remove ConfigObserver from exports 2014-02-06 13:10:34 -08:00
Kevin Sawicki ec4cf8b497 Remove ConfigObserver
This class offers little utility now that emissary exists with beefed
up Subscriber and Emitter classes.
2014-02-06 13:07:25 -08:00
Kevin Sawicki 967db1f7b8 Remove more empty Private: comment blocks 2014-02-06 11:21:03 -08:00
Kevin Sawicki 5b453290ad Mark DisplayBuffer methods delegated to as public 2014-02-06 11:17:20 -08:00
probablycorey 972fa41528 Package loading is always synchronous, activation can be async 2014-02-06 11:15:34 -08:00
Kevin Sawicki 5ca0864753 📝 Use ## for headings 2014-02-06 11:05:41 -08:00
Kevin Sawicki ee3d928b5b Set ivars in constructor 2014-02-06 11:05:20 -08:00
Kevin Sawicki b1b541f903 📝 doc return value of Config.observe 2014-02-06 11:02:10 -08:00
Kevin Sawicki a9e4bd4aaf 📝 Doc events and calling super from initialize 2014-02-06 10:52:01 -08:00
Kevin Sawicki 2f908c171d Merge pull request #1517 from atom/ks-clean-up-comment-visibility
Clean up comment visibility
2014-02-06 10:49:28 -08:00
Kevin Sawicki 227454e27e Remove ### style visibility comments 2014-02-06 10:40:45 -08:00
Kevin Sawicki 1d9fed2464 Remove Internal header 2014-02-06 10:16:24 -08:00
Kevin Sawicki 4298733db6 Remove Internal: prefix 2014-02-06 10:14:20 -08:00
Kevin Sawicki cee0b951fb Remove empty Private: comments 2014-02-06 10:11:32 -08:00
Kevin Sawicki 932a792289 Remove Private: prefix 2014-02-06 10:02:53 -08:00
Kevin Sawicki 64a57635e9 Set load queue concurrency to 10
This shaves around 100-150ms off of the total load time for grammars
2014-02-06 09:48:41 -08:00
Kevin Sawicki eefa85e8ec Remove ### Internal ### block 2014-02-06 09:29:27 -08:00
Kevin Sawicki 5a400f1bb2 Upgrade to settings-view@0.68.0 2014-02-06 09:25:16 -08:00
Kevin Sawicki 65ec0a2f0a 📝 Use TomDoc style comments in Git class 2014-02-05 18:03:14 -08:00
probablycorey ed8b8f005f Remove log 2014-02-05 17:34:55 -08:00
probablycorey 7166937b13 Copy symlinked directories as files
Closes #1515
2014-02-05 17:34:24 -08:00
Kevin Sawicki 5481e5d664 Upgrade to settings-view@0.67.0 2014-02-05 16:58:34 -08:00
probablycorey 2ccab9d182 Update to atom-shell@0.9.1 2014-02-05 16:34:37 -08:00
Corey Johnson a646ab5bb8 Merge pull request #1507 from atom/cj-use-squirrel-as-updater
Use squirrel as updater (instead of sparkle)
2014-02-05 16:08:59 -08:00
probablycorey f10e55b4d5 Remove deferred package deserializers 2014-02-05 14:46:49 -08:00
Corey Johnson e769a8e4d5 Merge pull request #1484 from atom/directional-pane-navigation
Add commands to move directionally between panes
2014-02-05 13:29:45 -08:00
Kevin Sawicki 3ac03c9ae0 Upgrade to settings-view@0.66.0 2014-02-05 12:27:20 -08:00
Kevin Sawicki 8b2533e721 Upgrade apm for init improvements 2014-02-05 12:26:32 -08:00
probablycorey bc29ddb9b6 Change currently-focused to active 2014-02-05 12:06:15 -08:00
Kevin Sawicki 1b455a990e Upgrade to spell-check@0.22.0 refs #1514 2014-02-05 09:13:39 -08:00
Kevin Sawicki 69fa5cb3f7 Remove empty Private: comments 2014-02-05 09:13:09 -08:00
Cheng Zhao eb05e804b1 Merge pull request #1510 from atom/cz-windows-grunt-build
Fix grunt build on Windows
2014-02-05 00:02:19 -08:00
Kevin Sawicki ab456131cc Upgrade apm for init fixes 2014-02-04 17:33:04 -08:00
Kevin Sawicki a7267d93ad Upgrade to language-gfm@0.13.0 2014-02-04 17:08:41 -08:00
Kevin Sawicki 3047152fb0 Mention apm init command 2014-02-04 16:51:11 -08:00
Kevin Sawicki 220fe36167 📝 Add guide for converting a TextMate bundle 2014-02-04 16:50:21 -08:00
Kevin Sawicki e52fd3925c Drop the www 2014-02-04 16:50:09 -08:00
Kevin Sawicki 8713153f01 📝 Add publish idea 2014-02-04 16:46:54 -08:00
Kevin Sawicki 4237916759 📝 Fence as sh 2014-02-04 16:34:27 -08:00
Kevin Sawicki bcf1456df7 📝 converted instead of generated 2014-02-04 16:32:26 -08:00
Kevin Sawicki 147db97d4d Add doc for converting a TextMate theme 2014-02-04 16:22:38 -08:00
Tom Preston-Werner b462a1ffa9 Merge pull request #1508 from atom/your-first-package-doc-fixes
Clarify a few small issues from a newbie perspective.
2014-02-04 16:14:24 -08:00
Kevin Sawicki e2e838c4ec Upgrade to symbols-view@0.31.0 2014-02-04 15:34:30 -08:00
probablycorey 6b88ce8d19 Replace getActivePane with getActivePaneView 2014-02-04 15:30:58 -08:00
Kevin Sawicki 4141e1060a Upgrade to first-mate@1.1.4 2014-02-04 14:30:05 -08:00
probablycorey e66e75593d Update feed url 2014-02-04 14:10:53 -08:00
Kevin Sawicki c765d069d1 Don't mark callback field as public 2014-02-04 13:40:49 -08:00
Kevin Sawicki faf1a1565e Upgrade to first-mate@1.1.3 2014-02-04 13:37:08 -08:00
Kevin Sawicki 71cae3c937 Upgrade to biscotto@0.2.0 2014-02-04 13:20:45 -08:00
Kevin Sawicki d5b809a194 📝 Clean up EditorView docs
* Remove ### Internal ### blocks
  * Remove ### Public ### blocks
  * Remove ### Private ### blocks
  * Remove empty Private: comments
  * Add explicit Public: to comments
2014-02-04 13:19:50 -08:00
probablycorey 36427dae9f Add toHaveFocus jasmine expectation 2014-02-04 13:06:47 -08:00
Kevin Sawicki 2fb0f796c4 Capitalize Editor is method name 2014-02-04 12:46:42 -08:00
Kevin Sawicki f473d46cf1 📝 doc EditorView::setPlaceholderText 2014-02-04 12:45:56 -08:00
Kevin Sawicki 061599554e 📝 coc EditorView::getEditor 2014-02-04 12:43:47 -08:00
Kevin Sawicki a03aad6f5e 📝 doc PaneView::getContainer 2014-02-04 11:48:25 -08:00
Kevin Sawicki 0a62277cfa 📝 doc Pane::getItems 2014-02-04 11:47:04 -08:00
Kevin Sawicki 9d045d1d43 📝 doc Editor::getMarkerCount 2014-02-04 11:45:47 -08:00
Kevin Sawicki 6e4c4f43b3 Upgrade to biscotto@0.1.0 2014-02-04 11:30:27 -08:00
Kevin Sawicki 099f632a6c 📝 Remove warning on missing reference 2014-02-04 11:28:34 -08:00
Kevin Sawicki 0dc0883531 Include includes when linting docs 2014-02-04 11:02:32 -08:00
Kevin Sawicki 6d6f4671d8 Use raw instead of raw2 2014-02-04 10:57:32 -08:00
Kevin Sawicki ef942ef1c8 Upgrade to text-buffer 1.x 2014-02-04 10:52:54 -08:00
Kevin Sawicki 2a75836ca2 Remove unused environment param/ivar 2014-02-04 10:14:29 -08:00
Kevin Sawicki b845086e63 📝 Add registering example 2014-02-04 10:14:12 -08:00
Kevin Sawicki ba45dbaa6a 📝 Mention atom.deserializers global 2014-02-04 10:13:59 -08:00
probablycorey 3c90007199 Cleanup split specs 2014-02-04 10:07:17 -08:00
probablycorey 1023c421c7 Remove log 2014-02-04 10:07:01 -08:00
Kevin Sawicki ece269f158 📝 Consistently mention what classes have global instances 2014-02-04 10:06:37 -08:00
Kevin Sawicki 43ba0b9529 📝 Mark Keymap class as public 2014-02-04 10:04:06 -08:00
Kevin Sawicki b28f3f29ec 📝 Sort and include atom.workspace 2014-02-04 10:00:34 -08:00
Kevin Sawicki 92aeb9f3cb Include Grammar class in docs 2014-02-04 09:58:48 -08:00
probablycorey 89cade2d22 Merge remote-tracking branch 'origin/master' into cj-update-markdown-preview 2014-02-04 09:56:17 -08:00
Kevin Sawicki 53529dab1f Upgrade to first-mate@1.1.2 2014-02-04 09:54:54 -08:00
Cheng Zhao 35dd435397 Don't use walkdir for copying tree.
On Windows with node v0.11.x walkdir is ignoring files randomly.
2014-02-04 21:36:45 +08:00
Cheng Zhao 93aec682de Also replace the atom icon on Windows. 2014-02-04 16:58:49 +08:00
Cheng Zhao c64b84750a Merge pull request #1503 from atom/cz-sync-to-async
Remove usage of synchronous messages during startup
2014-02-04 00:32:02 -08:00
Cheng Zhao 01876c4004 Request loadSettings.windowState via IPC messages. 2014-02-04 11:46:21 +08:00
Cheng Zhao 9680ad7bb5 No need to use => when we could use ->. 2014-02-04 11:01:39 +08:00
probablycorey bc5a79564a Update docs 2014-02-03 19:00:54 -08:00
Cheng Zhao 88a65358b4 Add methods for setSize, setPosition and center. 2014-02-04 11:00:51 +08:00
probablycorey dcbd2a2102 Add split and searchAllPanes option to Workspace::open 2014-02-03 19:00:50 -08:00
Nathan Sobo 11e727e3fa Merge pull request #1509 from atom/fix-doc-arg-name
Fix name of argument in docs for clipBufferPosition
2014-02-03 18:59:28 -08:00
Tom Preston-Werner ce63aee338 Fix name of argument in docs for clipBufferPosition 2014-02-03 17:50:03 -08:00
Tom Preston-Werner d3e11a6183 BAM -> 🎉 2014-02-03 16:48:33 -08:00
probablycorey 88798fca7e Merge remote-tracking branch 'origin/master' into cj-update-markdown-preview 2014-02-03 16:16:07 -08:00
Kevin Sawicki 3c9204e464 Remove convert-theme grunt task
This is now handled by the --convert argument to the apm init command
2014-02-03 15:22:58 -08:00
probablycorey 48417338b0 Fix typo 2014-02-03 14:54:50 -08:00
probablycorey faf523f698 Document methods 2014-02-03 14:43:02 -08:00
probablycorey 8a85f488f3 💄 2014-02-03 14:41:20 -08:00
Tom Preston-Werner f75b4aa117 Clarify a few small issues from a newbie perspective. 2014-02-03 14:22:20 -08:00
Kevin Sawicki e4a65ca810 Convert update octicons from script to grunt task 2014-02-03 14:15:08 -08:00
Kevin Sawicki a36cc3a609 Method is showErrorDialog not showDialog 2014-02-03 14:01:23 -08:00
Kevin Sawicki cb8075206b Merge pull request #1480 from atom/ks-return-object-from-pasteboard-read
Clean up atom.pasteboard
2014-02-03 13:56:16 -08:00
Kevin Sawicki a04f77b400 Update atom.clipboard.read() call for new return value 2014-02-03 13:50:48 -08:00
Kevin Sawicki 0e0ae17cd3 Upgrade to tree-view@0.67.0 2014-02-03 13:39:54 -08:00
Kevin Sawicki 02f0c49d0e Unfocus spec 2014-02-03 13:36:12 -08:00
Kevin Sawicki ca6521b711 Upgrade to settings-view@0.65.0 2014-02-03 13:34:28 -08:00
Kevin Sawicki f0c200f233 Upgrade to gists@0.16.0 2014-02-03 13:32:07 -08:00
Kevin Sawicki 84e69db268 Upgrade to to-the-hubs@0.19.0 2014-02-03 13:31:52 -08:00
Kevin Sawicki fbdb5b59ea Remove pasteboard shim 2014-02-03 13:29:20 -08:00
Kevin Sawicki 66530eb69a Rename remaining pasteboard occurences 2014-02-03 13:28:09 -08:00
Kevin Sawicki 70a7514f9e Add Clipboard::readWithMetadata
This includes the associated metadata and Clipboard::read now returns
a String.
2014-02-03 13:20:28 -08:00
Kevin Sawicki 55ca32f7b3 Rename pasteboard-spec to clipboard-spec 2014-02-03 13:12:56 -08:00
Kevin Sawicki 569ab416b8 Replace pasteboard references with clipboard 2014-02-03 13:12:33 -08:00
Kevin Sawicki b1e99d9927 Use atom.clipboard instead of atom.pasteboard 2014-02-03 13:10:10 -08:00
probablycorey caeb70cf4a Add 'Check for Updates' menu item 2014-02-03 12:52:01 -08:00
probablycorey cc233fb7f6 Use Squirrel API for auto-updates 2014-02-03 12:51:38 -08:00
probablycorey c730910f7c Update to atom-shell@0.9.0 2014-02-03 12:50:35 -08:00
Kevin Sawicki fc2be08b60 Rename Pasteboard class to Clipboard 2014-02-03 12:21:32 -08:00
Kevin Sawicki e6565f6561 Return object from Pasteboard::read
Closes #1465
2014-02-03 12:19:14 -08:00
Kevin Sawicki 638aaa2e62 Merge pull request #1506 from atom/ks-theme-types
Include type in theme key
2014-02-03 11:55:11 -08:00
Kevin Sawicki e23fb98a41 Upgrade apm for template updates 2014-02-03 11:27:45 -08:00
Kevin Sawicki 8d0ddc0513 Upgrade to settings-view@0.64.0 2014-02-03 11:15:59 -08:00
Kevin Sawicki c225d180ba Set fixture theme types to "ui" 2014-02-03 11:15:31 -08:00
Kevin Sawicki 217fd8e271 Check for non-null theme value 2014-02-03 11:12:43 -08:00
Kevin Sawicki b82c808bad Upgrade to base16-tomorrow-dark-theme@0.11.0 2014-02-03 11:04:07 -08:00
Kevin Sawicki 25f97b5ef3 Upgrade to solarized-light-syntax@0.5.0 2014-02-03 11:01:50 -08:00
Kevin Sawicki 86f1a484a8 Upgrade to solarized-dark-syntax@0.9.0 2014-02-03 11:00:47 -08:00
Kevin Sawicki 49313b65b9 Upgrade to atom-light-ui@0.21.0 2014-02-03 10:59:48 -08:00
Kevin Sawicki c0d564b635 Upgrade to atom-dark-ui@0.22.0 2014-02-03 10:58:51 -08:00
Kevin Sawicki b9c14379be Upgrade to atom-light-syntax@0.13.0 2014-02-03 10:54:45 -08:00
Kevin Sawicki adb3b390bb Upgrade to atom-dark-syntax@0.13.0 2014-02-03 10:53:53 -08:00
Kevin Sawicki a192b70406 Upgrade to tree-view@0.66.0 2014-02-03 10:49:04 -08:00
Kevin Sawicki 28e6be8baf Upgrade to image-view@0.18.0 2014-02-03 10:39:45 -08:00
Kevin Sawicki f5fa89418c Prepare 0.50.0 release 2014-02-03 09:54:03 -08:00
Cheng Zhao 3d27cd662a Save the sync message in require('crash-reporter').start(). 2014-02-03 19:31:40 +08:00
Cheng Zhao 0c8744f7a7 Delay the require.remote until needed. 2014-02-03 19:21:35 +08:00
Cheng Zhao 272ce92201 Pass app version via window's url.
We could save the sync message of atom.getVersion().
2014-02-03 19:18:15 +08:00
Cheng Zhao c30f74ef9e Remove call of atom.getCurrentWindow in atom.setWindowDimensions. 2014-02-03 19:11:01 +08:00
Cheng Zhao 5912ac1d1b Merge multiple updates of menu into one update. 2014-02-03 17:02:11 +08:00
Cheng Zhao a1171f39df Do not use sync message to call BrowserWindow API. 2014-02-03 16:24:39 +08:00
Cheng Zhao 69c9172e49 Get rid of ipc call in atom.getLoadSettings. 2014-02-03 16:09:15 +08:00
Cheng Zhao c1f3aa14cd Do not send synchronous messages in index.html. 2014-02-03 16:03:59 +08:00
Cheng Zhao fae28d8c21 Upgrade apm for proxy support. 2014-02-03 14:51:15 +08:00
Nathan Sobo 5017f1473c 💄 2014-02-02 19:52:51 +06:00
Nathan Sobo 12ec3f69d6 Merge branch 'master' into ns-fix-softwrap 2014-02-02 19:32:21 +06:00
Nathan Sobo f4e43b96c2 Don't add explicit 'Private:' annotations since it is the default 2014-02-02 19:31:09 +06:00
Nathan Sobo f958322cef 💄 spelling 2014-02-02 19:30:21 +06:00
Nathan Sobo 7061ea5d23 Kill stray console.log 2014-02-02 19:29:54 +06:00
Kevin Sawicki f7e11a1fb5 Upgrade to language-javascript@0.5.0 2014-01-31 15:49:42 -08:00
Kevin Sawicki aab5deaae6 Upgrade to language-ruby@0.8.0 refs #1470 2014-01-31 15:40:53 -08:00
Kevin Sawicki 50f68c38ec Merge pull request #1499 from atom/ks-remove-select-list-shim
Remove SelectList shim
2014-01-31 15:31:26 -08:00
Kevin Sawicki d778e13ffb 💄 Sort exports 2014-01-31 15:22:48 -08:00
Kevin Sawicki 9918a0b73f Remove SelectList shim 2014-01-31 15:22:16 -08:00
Kevin Sawicki 374fe99aaf Upgrade to symbols-view@0.30.0 2014-01-31 15:21:48 -08:00
Kevin Sawicki ea052fc667 Upgrade to styleguide@0.22.0 2014-01-31 15:20:11 -08:00
Kevin Sawicki d11037f6d2 Upgrade to spell-check@0.21.0 2014-01-31 15:19:42 -08:00
Kevin Sawicki 777c4a5e43 Upgrade to grammar-selector@0.18.0 2014-01-31 15:10:42 -08:00
Kevin Sawicki a897a320a9 Upgrade to fuzzy-finder@0.32.0 2014-01-31 15:09:32 -08:00
Kevin Sawicki a94e9df641 Upgrade to command-palette@0.15.0 2014-01-31 15:07:56 -08:00
Kevin Sawicki 45d8df37fa Upgrade to bookmarks@0.18.0 2014-01-31 15:07:30 -08:00
Kevin Sawicki 83639c4cfa Upgrade to autocomplete@0.21.0 2014-01-31 15:07:12 -08:00
Kevin Sawicki 6c960183fd Merge pull request #1498 from atom/ks-rename-select-list
Rename SelectList to SelectListView
2014-01-31 15:00:08 -08:00
Kevin Sawicki 0730c7902d Update export docs for SelectListView 2014-01-31 14:51:06 -08:00
Kevin Sawicki 012c38cf11 Shim export to old name 2014-01-31 14:50:33 -08:00
Kevin Sawicki 0785fb3a48 Add export shim 2014-01-31 14:50:16 -08:00
Kevin Sawicki 563065aeb1 Rename SelectList to SelectListView 2014-01-31 14:49:36 -08:00
Kevin Sawicki 2b1f9531e5 Upgrade to exception-reporting@0.13.0 2014-01-31 14:38:47 -08:00
Kevin Sawicki 665d1b9581 Merge pull request #1497 from atom/ks-coffee-script-1-7
More CoffeeScript 1.7
2014-01-31 14:20:40 -08:00
Kevin Sawicki d79d819048 Dedupe fs-plus and season 2014-01-31 14:09:19 -08:00
Kevin Sawicki 6ae2d9737d Upgrade to settings-view@0.63.0 2014-01-31 14:02:16 -08:00
Kevin Sawicki 54b67ea6b9 Upgrade apm for version bumps 2014-01-31 13:47:37 -08:00
Kevin Sawicki 41dc113088 Upgrade to coffeestack@0.7.0 2014-01-31 13:45:45 -08:00
Kevin Sawicki 3216d767da Upgrade to jasmine-tagged 1.x 2014-01-31 13:45:14 -08:00
Kevin Sawicki 94987c6769 Upgrade to season 1.x 2014-01-31 13:43:44 -08:00
Kevin Sawicki f423b54d5b Add underscore-plus 1.x 2014-01-31 13:43:31 -08:00
Kevin Sawicki 86dc499a99 Upgrade to first-mate 1.x 2014-01-31 13:42:59 -08:00
Kevin Sawicki ec6184322c Upgrade to grunt-cson@0.6.0 2014-01-31 11:21:47 -08:00
Kevin Sawicki bde4b88f9f Upgrade to grunt-contrib-coffee@0.9.0 2014-01-31 11:18:53 -08:00
Kevin Sawicki e0f41f8cc5 Upgrade to package-generator@0.25.0 2014-01-31 11:11:07 -08:00
Kevin Sawicki c49c48381a Return functions return value from measure 2014-01-31 10:41:31 -08:00
Kevin Sawicki 73d36e464d Upgrade to settings-view@0.62.0 2014-01-31 10:29:01 -08:00
Kevin Sawicki 2e8fd21193 Upgrade to snippets@0.24.0 2014-01-31 10:24:31 -08:00
Kevin Sawicki 39d525590b Upgrade to first-mate 1.1 2014-01-31 08:48:46 -08:00
Kevin Sawicki 4f6adc51b4 Merge pull request #1493 from atom/ks-rename-user-stylesheet
Rename ~/.atom/user.css to ~/.atom/styles.css
2014-01-31 08:38:53 -08:00
Kevin Sawicki 73c714b62d 📝 Update user stylesheet docs to use styles.css 2014-01-30 17:07:19 -08:00
Kevin Sawicki caa16f2718 Update user stylesheet path in spec 2014-01-30 16:58:35 -08:00
Kevin Sawicki 1b17441bfe Update default stylesheet name to styles.less 2014-01-30 16:58:20 -08:00
Kevin Sawicki 9a97bac05d Add cursor selector example 2014-01-30 16:57:27 -08:00
Kevin Sawicki 9252cd2a1b 📝 Doc reloading of ~/.atom/styles.css 2014-01-30 16:55:51 -08:00
Kevin Sawicki 1c790a3c55 Rename ~/.atom/user.css to ~/.atom/styles.css 2014-01-30 16:53:25 -08:00
Kevin Sawicki 11f61c88d8 Upgrade to settings-view@0.61.0 2014-01-30 16:42:57 -08:00
Kevin Sawicki 64d9eb24d2 Upgrade to find-and-replace@0.81.0 2014-01-30 16:39:27 -08:00
Kevin Sawicki 73b3b9870f Use 512x522 icon 2014-01-30 16:17:18 -08:00
Kevin Sawicki 1c8781268e Try out green app icon 2014-01-30 16:15:28 -08:00
Kevin Sawicki 662c130caf Upgrade to settings-view@0.60.0 2014-01-30 15:54:32 -08:00
Kevin Sawicki 40d9d6110c Upgrade to settings-view@0.59.0 2014-01-30 15:01:38 -08:00
Kevin Sawicki a6f42d6989 Upgrade to fuzzaldrin 1.x 2014-01-30 15:01:15 -08:00
Kevin Sawicki e9b4fb828e Merge pull request #1491 from atom/ks-prevent-space-scrolling
Prevent scrolling when a space is pressed in editor
2014-01-30 14:57:25 -08:00
Kevin Sawicki 84c5a25ef3 📝 Shorten comment 2014-01-30 12:44:01 -08:00
Kevin Sawicki 4a54565f59 Prevent scrolling when a space is pressed in editor
Closes atom/settings-view#25
2014-01-30 12:44:01 -08:00
Kevin Sawicki 1b396b5ce7 Upgrade to settings-view@0.58.0 2014-01-30 11:53:43 -08:00
Nathan Sobo c3f995b165 Fix lurking soft-wrap bugs
This commit adds two important things:

1. An editor spec that randomly mutates a buffer and toggles soft wrap
on and off, then compares the screen lines to a simple reference
implementation to ensure everything stays in a correct state.

2. A new and radically simpler implementation of RowMap that eliminates
failures in the randomized test.
2014-01-30 00:52:17 -07:00
Kevin Sawicki fe748dbcc8 Update octicons 2014-01-29 18:00:00 -08:00
Kevin Sawicki 1e759ee646 Add missing package icon 2014-01-29 17:58:35 -08:00
probablycorey 99f25267a0 Make sure the filePath is never null or undefined 2014-01-29 16:52:42 -08:00
Kevin Sawicki 09952d18c0 Only attempt to require bootstrap/js/tooltip once 2014-01-29 15:28:55 -08:00
probablycorey 9176e12f58 Actually fix the method name bug
For real this time
2014-01-29 13:20:54 -08:00
probablycorey 97330d19f3 Fix method name bug 2014-01-29 13:10:07 -08:00
probablycorey e3f0e11aa8 Remove trailing ; 2014-01-29 12:14:30 -08:00
probablycorey 32cd0ee972 Make distance a local method 2014-01-29 12:10:15 -08:00
probablycorey fc5bc1632d Shrink the nearest pane code 2014-01-29 12:08:34 -08:00
Corey Johnson 337390df47 Merge pull request #1489 from atom/cj-update-coffee-script
Update coffee script v1.7.0
2014-01-29 09:09:36 -08:00
Kevin Sawicki d29a0114ef Upgrade to go-to-line@0.16.0 2014-01-28 18:12:54 -08:00
Nathan Sobo b97db1914f Merge pull request #1455 from atom/ns-workspace-specs-cleanup
Cleanup workspace and its specs
2014-01-28 17:38:58 -08:00
Nathan Sobo 29f480661c Merge branch 'master' into ns-workspace-specs-cleanup 2014-01-28 18:25:13 -07:00
probablycorey d7638b4420 Use require('coffee-script').register() 2014-01-28 16:35:05 -08:00
Corey Johnson ce881c87b9 Merge pull request #1486 from atom/cj-first-package-doc
Simplify first package docs
2014-01-28 13:51:16 -08:00
probablycorey d9b00f16f7 Upgrade to coffee-script 1.7.0
http://coffeescript.org/#changelog
2014-01-28 11:39:01 -08:00
probablycorey 2590bad75f Use json to render code block 2014-01-28 11:33:07 -08:00
probablycorey 6ff553e41c Fix reload window text 2014-01-28 11:32:31 -08:00
probablycorey ec3ca7e429 Add an and 2014-01-28 11:27:06 -08:00
probablycorey 386767868e Remove activation events comment
I think we all agree that it would be better if we didn't have to 
deal with activationEvents. But for now I'm leaving this in because it
is required.
2014-01-28 11:24:53 -08:00
probablycorey e2bb4747fa 💄 2014-01-28 11:23:50 -08:00
probablycorey 885a4e2b2a Document the update-package-dependencies:update command. 2014-01-28 11:22:17 -08:00
probablycorey e31fab7fe4 Link to npm 2014-01-28 11:21:58 -08:00
probablycorey 0a2b173270 Inline links 2014-01-28 11:11:11 -08:00
Kevin Sawicki c1a9c3b5fb Update octicons 2014-01-28 10:06:54 -08:00
Kevin Sawicki 1550511e54 Write octicon codes to variables folder 2014-01-28 10:06:40 -08:00
Kevin Sawicki 44999b0b37 Upgrade to snippets@0.22.0 2014-01-27 18:58:26 -08:00
Kevin Sawicki 0f2931d0a2 Add open-your-snippets command 2014-01-27 18:58:07 -08:00
probablycorey 064a384318 Insert 'Hello, World!' text instead of uppercasing selection. 2014-01-27 17:40:19 -08:00
probablycorey 5708140f10 Use string interpolation 2014-01-27 17:30:14 -08:00
probablycorey aceeb10a0d Upgrade to update-package-dependencies@0.2.0 2014-01-27 17:27:42 -08:00
probablycorey 0940668263 Add update-package-dependencies package 2014-01-27 17:27:42 -08:00
Kevin Sawicki bcac3cc000 Merge pull request #1487 from atom/ks-dot-atom-snippets-file
~/.atom/snippets.cson support
2014-01-27 17:19:22 -08:00
Kevin Sawicki 5b39fc2e11 Upgrade to language-coffee-script@0.6.0 2014-01-27 13:06:27 -08:00
Kevin Sawicki cb0e0751d8 Upgrade to snippets@0.21.0 2014-01-27 12:58:46 -08:00
Kevin Sawicki a67d6362c2 Assert snippet.cson is copied over 2014-01-27 12:50:57 -08:00
Kevin Sawicki 5eb8875ad2 Add Open Your Snippets menu item 2014-01-27 11:17:20 -08:00
Kevin Sawicki e6e7106ac5 Add sample snippets.cson to dot-atom template 2014-01-27 11:16:24 -08:00
Kevin Sawicki 257d0d3a25 Remove template snippets folder 2014-01-27 11:02:52 -08:00
Nathan Sobo 632ba0217a 💄 2014-01-27 11:49:09 -07:00
Nathan Sobo bf1a2a532e A little wordsmithing. Feel free to push back on whatever. 2014-01-27 11:00:32 -07:00
probablycorey 72bb83ccd0 Link to ascii art 2014-01-27 08:55:35 -08:00
probablycorey def2001eb6 Use json instead of coffeescript in code block 2014-01-27 08:54:47 -08:00
probablycorey 5bda9b8a8e Remove trailing dot 2014-01-27 08:53:47 -08:00
probablycorey 0b0ad42610 💄 2014-01-27 08:46:27 -08:00
Jason Rudolph 8772e45a39 Fix typo in method names 2014-01-27 06:41:49 -05:00
Cheng Zhao 7c4b453e64 Do not show unresponsive dialog when running specs. 2014-01-27 18:56:54 +08:00
Cheng Zhao 740e0731fe Merge pull request #1485 from atom/atom-shell-v0.8.7
Update atom-shell to v0.8.7
2014-01-27 02:53:41 -08:00
Cheng Zhao b6cf097abd Update atom-shell to v0.8.7. 2014-01-27 18:47:58 +08:00
Cheng Zhao aa8d03b092 Merge pull request #1473 from atom/cz-windows-start
Fix grunt install on Windows
2014-01-26 20:05:15 -08:00
Jason Rudolph 8c75f425e7 Add keymaps for moving directionally between panes
- Add keymaps for the new commands. Since the new commands are all about
  moving in a specific direction between panes, use the up, down, left,
  and right keys in the keymaps.
- Change the keymaps for the existing commands (since the new commands
  for moving left and right are now using the old keymaps for moving
  to the previous and next pane respectively). Use "p" instead of "left"
  in the keymap for focusing the *p*revious pane. Use "n" instead of
  "right" in the keymap for focusing the *n*ext pane.
2014-01-26 17:42:28 -05:00
Jason Rudolph f322143272 Place pane navigation specs in proximity to each other 2014-01-26 17:29:45 -05:00
Jason Rudolph dd5c65b5f9 Add commands to move directionally between panes 2014-01-26 17:25:59 -05:00
Nathan Sobo aec9e75ecb Send more info on errors converting buffer positions to screen positions
We've gotten one rogue error but I have no idea how to reproduce it.
This will tell us if soft wrap is enabled and if any folds are present
so hopefully we can start narrowing these down.
2014-01-26 15:00:58 -07:00
Nathan Sobo b05e20245f Upgrade find and replace to 0.80.0 to fix invalid regex exceptions
And also to remove live project search
2014-01-26 14:26:14 -07:00
Nathan Sobo 17d30cc526 Revise in-depth keymap overview 2014-01-25 17:49:40 -07:00
Nathan Sobo f631660b32 Start on overview of atom's global variables 2014-01-25 17:49:39 -07:00
probablycorey 2b34b2b9ba Revert "Remove sparkle keys from plist."
This reverts commit f92f130606.
2014-01-24 18:25:36 -08:00
probablycorey 5be6cfa678 Update first package documentation 2014-01-24 18:07:37 -08:00
Kevin Sawicki b5449dec6c Upgrade to fuzzaldrin@0.7.0 2014-01-24 17:56:01 -08:00
Kevin Sawicki be0e36b663 Rename Gutter to GutterView
Refs #1468
2014-01-24 17:30:29 -08:00
probablycorey f92f130606 Remove sparkle keys from plist. 2014-01-24 15:10:51 -08:00
Cheng Zhao d931299b9f Create shortcut on Desktop. 2014-01-24 21:55:49 +08:00
Cheng Zhao b1778aa7df Use administrator power to install Atom on Windows. 2014-01-24 21:07:32 +08:00
Cheng Zhao c5d7614d80 Use named pipe instead of socket file on Windows. 2014-01-24 19:22:13 +08:00
probablycorey 0d34df2238 Update metrics package to 0.24.0 2014-01-23 15:51:42 -08:00
probablycorey ee24b373c0 Update metrics package 2014-01-23 15:32:44 -08:00
Kevin Sawicki 8e6aa1ee9a Doc available classes from 2014-01-23 15:13:12 -08:00
Kevin Sawicki 9e381db265 Upgrade to to-the-hubs@0.18.0 2014-01-23 15:05:52 -08:00
Corey Johnson 6d4f532a32 Merge pull request #1464 from atom/cj-cli-install
Make CLI installation easier.
2014-01-23 12:40:57 -08:00
Cheng Zhao 998aedf367 Merge pull request #1467 from atom/atom-shell-v0.8.6
Upgrade to atom-shell@v0.8.6
2014-01-23 05:33:21 -08:00
Cheng Zhao 5f0a3061ac Remove the workaround for net.connect delay. 2014-01-23 21:03:17 +08:00
Cheng Zhao c424a39538 Upgrade to atom-shell@v0.8.6. 2014-01-23 21:02:41 +08:00
Cheng Zhao 150815edfd Merge pull request #1443 from atom/fix-windows
Fix Windows build
2014-01-22 23:18:03 -08:00
Kevin Sawicki 00ba7d92d0 Upgrade to language-coffee-script@0.5.0 for regex fix 2014-01-22 17:47:32 -08:00
Kevin Sawicki 3dc51365b3 Prepare 0.49.0 release 2014-01-22 17:25:33 -08:00
Kevin Sawicki d18a45f37c Bump remove timeout to 30 seconds 2014-01-22 16:38:47 -08:00
Kevin Sawicki d8c1587534 📝 Mark getters a public 2014-01-22 16:31:10 -08:00
Kevin Sawicki a4754b2bd5 📝 Mark ThemeManager class public 2014-01-22 16:25:55 -08:00
Kevin Sawicki f3f6ec424f 📝 Mark Pasteboard class as public 2014-01-22 16:11:58 -08:00
probablycorey 020326ffad Only display one dialog on successful installation. 2014-01-22 16:01:52 -08:00
Kevin Sawicki ac2985af36 Call getSelectedText() on Editor 2014-01-22 15:57:15 -08:00
probablycorey ca8609c925 Fix 🐛 2014-01-22 15:56:18 -08:00
probablycorey d2e4c61e0b Make cli installation work with install-cli script 2014-01-22 15:56:05 -08:00
probablycorey 399c4f9f95 Fix spelling error 2014-01-22 15:54:49 -08:00
probablycorey 3da7fe7300 Update error message 2014-01-22 15:42:08 -08:00
probablycorey 40048da314 Add 'Install Shell Commands' menu item. 2014-01-22 15:33:32 -08:00
probablycorey 04c8549c38 Use a single command to install apm and atom 2014-01-22 15:33:16 -08:00
probablycorey 4ef6eae02f Add install cli commands for apm and atom 2014-01-22 15:17:23 -08:00
Nathan Sobo 52dcf6a721 Guard against null line number elements when updating fold indicators
Fixes #1461 but doesn't really address the root cause.
2014-01-22 16:06:46 -07:00
probablycorey 9169e9e227 Verify platform inside command installer 2014-01-22 14:54:01 -08:00
probablycorey 19e0854036 Log warning if commands fail to install 2014-01-22 14:53:38 -08:00
Kevin Sawicki cd41637df0 Upgrade to git-utils@0.34.0 for symlink fix 2014-01-22 14:15:19 -08:00
probablycorey 8973a6d777 Display dialog error when commands can't be installed 2014-01-22 13:51:51 -08:00
probablycorey e6b9c67aad Merge remote-tracking branch 'origin/master' into cj-cli-install 2014-01-22 13:35:25 -08:00
probablycorey eb28c15f69 Simplify installation callbacks 2014-01-22 13:35:07 -08:00
probablycorey a42a4dd352 Escape from a tool panel does not emit core:close 2014-01-22 10:46:18 -08:00
Kevin Sawicki cc53b6fbef 📝 Doc Syntax class 2014-01-22 10:30:25 -08:00
Kevin Sawicki b31089cbb9 📝 Mention atom.project global in project docs 2014-01-22 10:21:37 -08:00
Kevin Sawicki 4d4ff84047 📝 Doc how to require WorkspaceView in package specs 2014-01-22 10:19:54 -08:00
Kevin Sawicki 0875e00f9c Upgrade to atom/biscotto@12188bfbe5 2014-01-22 10:17:04 -08:00
Kevin Sawicki b9d45680c3 📝 Wrap types in curlies 2014-01-22 10:09:08 -08:00
Kevin Sawicki 1fa2099eba Don't mark text-utils methods as public 2014-01-22 10:05:53 -08:00
Cheng Zhao 4d74a69277 Use nslog on Windows. 2014-01-22 23:10:45 +08:00
Cheng Zhao 3aa67bff8b Update to nslog@0.4.0 2014-01-22 23:10:44 +08:00
Cheng Zhao 325482353e Update grunt-download-atom-shell to v0.6.0. 2014-01-22 23:10:44 +08:00
Cheng Zhao cf4e08cdc0 Fix executing grunt under Windows. 2014-01-22 23:10:44 +08:00
Cheng Zhao ced02faf0f Updater to terminal@0.27.0 2014-01-22 23:10:43 +08:00
Cheng Zhao 8afca3ac86 Merge pull request #1459 from atom/source-map
Add source map support in dev mode
2014-01-21 23:00:43 -08:00
Cheng Zhao d13d2d3112 Generate source map in coffee-cache. 2014-01-22 14:36:50 +08:00
Nathan Sobo c3d5f713ca Rename internals directory to advanced 2014-01-21 21:04:33 -07:00
Nathan Sobo 042684212e Use atom.config instead of config 2014-01-21 21:04:33 -07:00
Nathan Sobo 81987efed7 Fix typo 2014-01-21 21:04:33 -07:00
Nathan Sobo f2e123e295 Merge pull request #1457 from shama/typo
docs: occured -> occurred.
2014-01-21 19:58:03 -08:00
Nathan Sobo 8d193d542b Update configuration docs 2014-01-21 20:56:30 -07:00
Nathan Sobo 8ca8ac5efc Make ConfigObserver a proper mixin and export it 2014-01-21 20:56:23 -07:00
Kyle Robinson Young f6c7dd0b2f docs: occured -> occurred. 2014-01-21 19:41:53 -08:00
Nathan Sobo b380551e5e Nuke private beta docs 2014-01-21 20:34:57 -07:00
Nathan Sobo 7dcb340643 Streamline the getting started docs 2014-01-21 20:33:53 -07:00
Kevin Sawicki f0339936ee Remove docs/output/api before building 2014-01-21 18:56:15 -08:00
Kevin Sawicki 1ae10e59ae Upgrade to atom/biscotto@4a0c9cb9d7 2014-01-21 18:43:07 -08:00
Kevin Sawicki e4bcb52573 📝 Add requiring in packages example to exported classes 2014-01-21 18:43:07 -08:00
Kevin Sawicki 292ff0de52 📝 Use singular package 2014-01-21 18:43:07 -08:00
probablycorey 5a70276201 Fix specs 2014-01-21 18:09:53 -08:00
probablycorey 1bd4d51879 Install atom and apm cli commands to /usr/local/bin 2014-01-21 18:00:59 -08:00
Corey Johnson a95a510770 Merge pull request #1456 from atom/cj-os-keybindings
Use file suffix to load specific platform keybindings.
2014-01-21 17:59:55 -08:00
probablycorey 7d1be155fa 💄 2014-01-21 17:55:05 -08:00
Kevin Sawicki 41de6bdb70 Just hackable for now 2014-01-21 17:51:54 -08:00
Kevin Sawicki 1d9bca12e0 📝 Mention that atom.project.getRepo() might be unavailable 2014-01-21 17:45:32 -08:00
Kevin Sawicki e9c296968d Upgrade to atom/biscotto@408b1862da 2014-01-21 17:43:36 -08:00
Kevin Sawicki 352eab47df 📝 Merge example with return doc 2014-01-21 17:21:42 -08:00
Kevin Sawicki 002c4dcb80 Upgrade to atom/biscotto@7ba14a419 2014-01-21 17:17:06 -08:00
Kevin Sawicki 03250f79c6 📝 Add period to first line of loadOrCreate doc 2014-01-21 17:05:55 -08:00
probablycorey 1142da1848 Use body instead of workspace so keymaps work inside spec window 2014-01-21 16:48:56 -08:00
probablycorey e53ed10169 Only allow one platform specific keybinding file. 2014-01-21 16:34:52 -08:00
probablycorey 3fb54b657d Update apm with new keybinding docs 2014-01-21 16:27:25 -08:00
Kevin Sawicki 4b3b0145a7 📝 Mark DisplayBuffer delegates as public 2014-01-21 16:17:47 -08:00
probablycorey ec558f9a9b Update keymap files 2014-01-21 16:13:45 -08:00
Kevin Sawicki 051f1b4777 📝 Mark setEditorWidthInChars as public 2014-01-21 16:12:06 -08:00
probablycorey 2e4e178091 Don't load keymap files with other platforms in the suffix
Example: On osx `keymap.cson` and `keymap-darwin.cson` would load. But
`keymap-win32.cson` would not load.
2014-01-21 16:03:34 -08:00
Kevin Sawicki 1fa04cb161 Use biscotto fork 2014-01-21 15:54:28 -08:00
Nathan Sobo 69df046cb0 Move font size increase/decrease to the Workspace model 2014-01-21 16:44:06 -07:00
Nathan Sobo d491007da8 Remove tests for simple delegators 2014-01-21 16:44:06 -07:00
Nathan Sobo 71c65e65eb Move specs for Workspace::reopenItemSync to model layer 2014-01-21 16:44:06 -07:00
Nathan Sobo 3fad9c616f Move specs for Workspace::open to model layer 2014-01-21 16:44:06 -07:00
Nathan Sobo 45875188a4 Rename Workspace::openSingletonSync changeFocus option to activatePane 2014-01-21 16:44:06 -07:00
Nathan Sobo 933787f1a4 Remove 'split' option from Workspace::openSync 2014-01-21 16:44:06 -07:00
Nathan Sobo 726b546004 Handle the 'split' option directly in Workspace::openSingletonSync 2014-01-21 16:44:06 -07:00
Nathan Sobo 5e83dee493 Move specs for Workspace::openSingletonSync to model layer 2014-01-21 16:44:06 -07:00
Nathan Sobo 11ab6fd2ef 💄 2014-01-21 16:44:06 -07:00
Nathan Sobo 0758bd0231 Move specs for Workspace::openSync to model layer 2014-01-21 16:44:05 -07:00
Nathan Sobo 7f63460a8c Rename Workspace::openSync's changeFocus option to activatePane
The old option is still supported as a deprecated shim.
2014-01-21 16:44:05 -07:00
Kevin Sawicki 627e43dccf Hide tooltips when window is resized
Refs atom/feedback#12
2014-01-21 12:33:23 -08:00
Kevin Sawicki cb8b38b7f7 💄 Use @ instead of this 2014-01-21 11:42:21 -08:00
Kevin Sawicki 04b2eefec3 Upgrade to styleguide@0.21.0 2014-01-21 11:39:50 -08:00
Kevin Sawicki 0694180715 Upgrade to tree-view@0.65.0 2014-01-21 11:20:46 -08:00
Kevin Sawicki f51b116c14 Upgrade to release-notes@0.17.0 2014-01-21 09:46:52 -08:00
Kevin Sawicki f001e05262 Include grammmar-registry from first-mate 2014-01-21 09:36:34 -08:00
Kevin Sawicki 77e97a7552 Link to node docs 2014-01-21 09:26:38 -08:00
Kevin Sawicki 80a1249d59 Merge pull request #1451 from atom/ks-remove-doc-warnings
Cleanup docs
2014-01-20 16:05:10 -08:00
Kevin Sawicki a03ba290f9 Use consistent coffeescript fence name 2014-01-20 16:00:02 -08:00
Kevin Sawicki c9e498f36f 📝 Use correct folder name 2014-01-20 16:00:02 -08:00
Kevin Sawicki e6a98125af Link to creating a package doc 2014-01-20 16:00:02 -08:00
Kevin Sawicki 025d2be606 📝 Triggered instead of trigged 2014-01-20 16:00:02 -08:00
Kevin Sawicki 26e21e98db 📝 Mention atom.project global 2014-01-20 16:00:02 -08:00
Kevin Sawicki e3f32ab30b Wrap Array in curlies 2014-01-20 16:00:02 -08:00
Kevin Sawicki 5d8ac56018 Remove unused temp directory 2014-01-20 16:00:02 -08:00
Kevin Sawicki 1603fab984 Download includes when building docs
This makes it so you no longer have to have the included cloned repos
locally when building.
2014-01-20 16:00:02 -08:00
Kevin Sawicki 07c7f1ea46 Add theorist to generated docs 2014-01-20 16:00:02 -08:00
Kevin Sawicki 31b68c0937 Include space-pen docs 2014-01-20 16:00:02 -08:00
Kevin Sawicki 3a02f4de0c 📝 Remove delegate warnings 2014-01-20 16:00:02 -08:00
Kevin Sawicki 45fe04f630 📝 Add require example 2014-01-20 16:00:02 -08:00
Kevin Sawicki b4a9409ec8 Add custom README.md for generated docs 2014-01-20 16:00:02 -08:00
Kevin Sawicki 7432d39301 Upgrade to text-buffer@0.16.0 2014-01-20 16:00:01 -08:00
Kevin Sawicki c5349f53b2 Wrap code example in backticks 2014-01-20 16:00:01 -08:00
Kevin Sawicki 8b4b4a6ea9 📝 Indent comment correctly 2014-01-20 16:00:01 -08:00
Kevin Sawicki 19177123a7 Upgrade to link@0.15.0 2014-01-20 15:53:05 -08:00
Kevin Sawicki dd032b739f Upgrade to language-gfm@0.12.0 2014-01-20 15:52:41 -08:00
Nathan Sobo f0ebe71c4e Merge pull request #1449 from BinaryMuse/activate_item_to_left_after_close
Closing a tab activates the wrong tab
2014-01-20 14:46:51 -08:00
Brandon Tilley 8bba4d8add Intelligently activate new items when the active item is closed
If the active item was the pane's first item, the second item (which is
the new first item) is activated. Otherwise, the item to the left of the
closed item is activated.
2014-01-20 14:34:02 -08:00
Nathan Sobo 7be0f6dd3b Upgrade apm for base.less fix 2014-01-20 15:10:39 -07:00
Nathan Sobo 571947ae93 Upgrade syntax themes to remove backward-compatible selectors 2014-01-20 15:05:52 -07:00
Nathan Sobo 338168e145 Merge pull request #1441 from atom/ns-fold-indicators
Allow folds to be toggled by clicking icons in the gutter
2014-01-20 13:53:30 -08:00
Nathan Sobo 4190f2f1ca Merge remote-tracking branch 'origin/master' into ns-fold-indicators 2014-01-20 14:40:14 -07:00
Nathan Sobo e74f026750 Upgrade bookmarks to 0.17.0 to use new markup for gutter icons 2014-01-20 14:39:02 -07:00
Nathan Sobo 525b5c9978 Don't make commented lines foldable based on the next line's indentation
Only the first line of a set of commented lines should be foldable, even
if some of the lines in the block are indented.
2014-01-20 14:29:08 -07:00
Nathan Sobo 86106cbf4d Remove redundant specs 2014-01-20 14:27:45 -07:00
Nathan Sobo 519ebb1ca6 Leave folded marker on end of lines in its natural position
Previously, we were nudging it upward. Something must have changed at
some point because it looked too high.
2014-01-20 14:22:26 -07:00
Nathan Sobo da56c1def5 💄 comments 2014-01-20 14:09:25 -07:00
Kevin Sawicki a6f9b6d2de Merge pull request #1439 from atom/ks-open-dot-atom-menu-items
Add commands to open ~/.atom files
2014-01-20 10:45:34 -08:00
Nathan Sobo d965e9f56c Ensure change doesn't precede rendered range when updating foldability 2014-01-20 11:39:30 -07:00
Kevin Sawicki 8f0e0ae4a6 Move open commands to Atom menu 2014-01-20 10:37:14 -08:00
Kevin Sawicki 57a71b3cb3 Forward open commands to browser process 2014-01-20 10:37:14 -08:00
Kevin Sawicki 71c48ec07f Open .atom files from browser process
This allows a new window to be created if there is no currently
focused window.
2014-01-20 10:37:14 -08:00
Kevin Sawicki 4ac3be7ab5 Group open commands with a separator 2014-01-20 10:37:13 -08:00
Kevin Sawicki 5dd83b12c0 Add Open Your Config item to View menu 2014-01-20 10:37:13 -08:00
Kevin Sawicki 905f628b79 Add command to open user config in an editor 2014-01-20 10:37:13 -08:00
Kevin Sawicki ddad42432b Add Open Your Keymap item to View menu 2014-01-20 10:37:13 -08:00
Kevin Sawicki 52e999fc11 Add command to open user keymap in an editor 2014-01-20 10:37:13 -08:00
Kevin Sawicki 3114efbf9c 📝 Update path in comment 2014-01-20 10:37:13 -08:00
Kevin Sawicki 8436e8f62e Reload user keymap when it is moved/removed 2014-01-20 10:37:13 -08:00
Kevin Sawicki ba1303a895 Add menu to opening user stylesheet 2014-01-20 10:37:13 -08:00
Kevin Sawicki 59c4c15afd Add command to open ~/.atom/user.less in an editor 2014-01-20 10:37:13 -08:00
Nathan Sobo 2831b43042 Update foldability indicators on changes that don't insert/remove lines
On changes that insert/remove lines, we redraw the entire gutter, which
ensures the foldability markers are up to date. But other kinds of
changes could change the foldability of lines… if a line becomes
commented or its indentation changes, the foldability of that line and
the lines above and below could be affected. For now, the gutter
understands this fact and updates the foldability for the region
extending from one line before to one line after each change. Someday
I'd like the view logic to not bake in knowledge of the folding rules,
but this works for now.
2014-01-20 11:17:58 -07:00
Kevin Sawicki 3c8cb557ed Upgrade to release-notes@0.16.0 2014-01-20 10:17:42 -08:00
Kevin Sawicki 6b8393dced Upgrade to github-sign-in@0.18.0 2014-01-20 10:16:26 -08:00
Kevin Sawicki 3356b4ac47 Upgrade to github-sign-in@0.17.0 2014-01-20 10:14:41 -08:00
Nathan Sobo 3eb7c9d767 Add LanguageMode::toggleLineCommentForBufferRow for toggling single rows 2014-01-20 11:14:27 -07:00
Nathan Sobo bbb3ebc2b9 Upgrade to tabes 0.18.0 to support dragging tabs to empty panes 2014-01-19 20:05:51 -07:00
Nathan Sobo ed93695d64 Add a foldable indicator for multi-line comments 2014-01-18 12:08:37 -07:00
Nathan Sobo 4db2ad53fd Rename .fold class to .folded on line numbers in gutter
Using an adjective blends in better with '.foldable'
2014-01-18 11:35:22 -07:00
Nathan Sobo 149a6825b4 Show bookmarks instead of fold indicators unless hovering 2014-01-17 17:20:37 -07:00
Kevin Sawicki dd1581aaca Upgrade to find-and-replace@0.79.0 2014-01-17 16:17:33 -08:00
Nathan Sobo 99f025d5d6 Rename .fold-icon to .icon-right in gutter to make it multi-purpose 2014-01-17 16:59:50 -07:00
Kevin Sawicki e0cf20cda9 Don't throw error when saving empty pane
Closes #1440
2014-01-17 15:24:55 -08:00
Kevin Sawicki c305384334 Upgrade to styleguide@0.20.0 2014-01-17 15:16:57 -08:00
Nathan Sobo d879923cdb Fix gutter view rendering specs 2014-01-17 16:03:02 -07:00
Nathan Sobo d16526a1f7 Fix references to renamed method in specs 2014-01-17 15:57:49 -07:00
Nathan Sobo a774c2ff08 🔫 unnecessary return statement 2014-01-17 15:46:49 -07:00
Nathan Sobo 475ff140a7 Make unfolded fold icons darker on hover 2014-01-17 15:22:29 -07:00
Nathan Sobo fa6bce3085 Rename LanguageModel::isBufferRowFoldable to ::isFoldableAtBufferRow
It blends in better with the methods on Editor.
2014-01-17 15:19:07 -07:00
Nathan Sobo b2dff15e51 Toggle folding upon 'mousedown' on a foldable line's fold-icon 2014-01-17 15:17:13 -07:00
Nathan Sobo 1e3dc05b3d Nudge chevron-right left a bit to align better with chevron-down 2014-01-17 14:58:16 -07:00
Nathan Sobo 1a12a17b7a Use actual markup for fold icon so we can determine when it's clicked 2014-01-17 14:55:06 -07:00
Nathan Sobo 8757e1f145 Add downward pointing chevrons next to foldable row numbers in gutter 2014-01-17 14:34:53 -07:00
Nathan Sobo 12ca214d6a 💄 Fix misleading variable name 2014-01-17 14:32:58 -07:00
Nathan Sobo 8e75831318 Rename LanguageMode::doesBufferRowStartFold to ::isBufferRowFoldable 2014-01-17 14:30:40 -07:00
Nathan Sobo 2f049b95a8 Use Delegator mixin to delegate to language mode 2014-01-17 14:07:56 -07:00
Kevin Sawicki 386d4d3eb5 Merge pull request #1437 from atom/ks-watch-user-stylesheet
Reload user stylesheet when changed
2014-01-17 12:48:17 -08:00
Kevin Sawicki 6a14c0df81 Remove unused package require 2014-01-17 12:40:33 -08:00
Kevin Sawicki 083204f737 💄 Sort requires 2014-01-17 12:40:21 -08:00
Kevin Sawicki 4d17f625f8 Null out file when unwatching 2014-01-17 12:28:30 -08:00
Kevin Sawicki 64ebc37204 Reload user stylesheet when changed 2014-01-17 11:33:25 -08:00
Nathan Sobo b4dcec9417 Prepare 0.48.0 release 2014-01-17 11:50:28 -07:00
208 arquivos alterados com 10643 adições e 10793 exclusões
+2
Ver Arquivo
@@ -1,4 +1,5 @@
*.swp
*~
.DS_Store
.project
.svn
@@ -9,5 +10,6 @@ debug.log
/tags
/atom-shell/
docs/output
docs/includes
spec/fixtures/evil-files/
/apm
+2
Ver Arquivo
@@ -0,0 +1,2 @@
ca =
cache = ~/.atom/.npm
+34 -3
Ver Arquivo
@@ -10,12 +10,12 @@ to propose changes to this document in a pull request.
that behavior such as Emacs, vi, Xcode, etc.
* Check the Console app for stack traces to include if reporting a crash.
* Check the Dev tools (`alt-cmd-i`) for errors and stack traces to include.
### Package Repositories
This is the repository for the core Atom editor only. Atom comes bundled with
many packages and themes that are stored in other repos under the
[atom org](https://github.com/atom) such as [tabs](https://github.com/atom/tabs),
[atom organization](https://github.com/atom) such as [tabs](https://github.com/atom/tabs),
[find-and-replace](https://github.com/atom/find-and-replace),
[language-javascript](https://github.com/atom/language-javascript),
and [atom-light-ui](http://github.com/atom/atom-light-ui).
@@ -30,7 +30,7 @@ in the proper package's repository.
* Follow the [CoffeeScript](#coffeescript-styleguide),
[JavaScript](https://github.com/styleguide/javascript),
and [CSS](https://github.com/styleguide/css) styleguides
* Include thoughtfully worded [Jasmine](http://pivotal.github.com/jasmine/)
* Include thoughtfully worded [Jasmine](http://pivotal.github.com/jasmine)
specs
* Avoid placing files in `vendor`. 3rd-party packages should be added as a
`package.json` dependency.
@@ -56,8 +56,39 @@ in the proper package's repository.
* :racehorse: when improving performance
* :non-potable_water: when plugging memory leaks
* :memo: when writing docs
* :penguin: when fixing something on Linux
## CoffeeScript Styleguide
* Set parameter defaults without spaces around the equal sign
* `clear = (count=1) ->` instead of `clear = (count = 1) ->`
## Documentation Styleguide
* Use [TomDoc](http://tomdoc.org).
* Use [Markdown](https://daringfireball.net/projects/markdown).
* Reference classes with `{ClassName}`.
* Reference instance methods with `{ClassName::methodName}`.
* Reference class methods with `{ClassName.methodName}`.
* Delegate to comments elsewhere with `{Delegates to: ClassName.methodName}`
style notation.
### Example
```coffee
# Public: Disable the package with the given name.
#
# This method emits multiple events:
#
# * `package-will-be-disabled` - before the package is disabled.
# * `package-disabled` - after the package is disabled.
#
# name - The {String} name of the package to disable.
# options - The {Object} with disable options (default: {}):
# :trackTime - `true` to track the amount of time disabling took.
# :ignoreErrors - `true` to catch and ignore errors thrown.
# callback - The {Function} to call after the package has been disabled.
#
# Returns `undefined`.
disablePackage: (name, options, callback) ->
```
+1
Ver Arquivo
@@ -0,0 +1 @@
Copyright 2014 GitHub, Inc.
-13
Ver Arquivo
@@ -1,13 +0,0 @@
Copyright 2013 GitHub Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+2 -2
Ver Arquivo
@@ -1,8 +1,8 @@
# Atom — The hackable, ~~collaborative~~ editor
# Atom — The hackable editor
![Atom](http://i.imgur.com/OrTvUAD.png)
Check out our [guides and API documentation](https://www.atom.io/docs/latest/).
Check out our [guides and API documentation](https://atom.io/docs/latest).
## Installing
+59 -15
Ver Arquivo
@@ -1,11 +1,13 @@
#!/bin/sh
ATOM_PATH=${ATOM_PATH-/Applications/Atom.app}
ATOM_BINARY=$ATOM_PATH/Contents/MacOS/Atom
#!/bin/bash
if [ ! -d $ATOM_PATH ]; then sleep 5; fi # Wait for Atom to reappear, Sparkle may be replacing it.
if [ ! -d $ATOM_PATH ]; then
echo "Atom application not found at '$ATOM_PATH'" >&2
if [ "`uname`" == 'Darwin' ]; then
OS='Mac'
elif [ "`expr substr $(uname -s) 1 5`" == 'Linux' ]; then
OS='Linux'
elif [ "`expr substr $(uname -s) 1 10`" == 'MINGW32_NT' ]; then
OS='Cygwin'
else
echo "Your platform (`uname -a`) is not supported."
exit 1
fi
@@ -16,7 +18,11 @@ while getopts ":wtfvhs-:" opt; do
wait)
WAIT=1
;;
help|version|foreground|test)
help|version)
REDIRECT_STDERR=1
EXPECT_OUTPUT=1
;;
foreground|test)
EXPECT_OUTPUT=1
;;
esac
@@ -24,25 +30,63 @@ while getopts ":wtfvhs-:" opt; do
w)
WAIT=1
;;
h|v|f|t)
h|v)
REDIRECT_STDERR=1
EXPECT_OUTPUT=1
;;
f|t)
EXPECT_OUTPUT=1
;;
esac
done
if [ $EXPECT_OUTPUT ]; then
$ATOM_BINARY --executed-from="$(pwd)" --pid=$$ $@
exit $?
else
open -a $ATOM_PATH -n --args --executed-from="$(pwd)" --pid=$$ $@
if [ $REDIRECT_STDERR ]; then
exec 2> /dev/null
fi
# Used to exit process when atom is used as $EDITOR
if [ $OS == 'Mac' ]; then
ATOM_PATH=${ATOM_PATH:-/Applications} # Set ATOM_PATH unless it is already set
ATOM_APP_NAME=Atom.app
# If ATOM_PATH isn't a executable file, use spotlight to search for Atom
if [ ! -x "$ATOM_PATH/$ATOM_APP_NAME" ]; then
ATOM_PATH=$(mdfind "kMDItemCFBundleIdentifier == 'com.github.atom'" | head -1 | xargs dirname)
fi
# Exit if Atom can't be found
if [ -z "$ATOM_PATH" ]; then
echo "Cannot locate Atom.app, it is usually located in /Applications. Set the ATOM_PATH environment variable to the directory containing Atom.app."
exit 1
fi
if [ $EXPECT_OUTPUT ]; then
"$ATOM_PATH/$ATOM_APP_NAME/Contents/MacOS/Atom" --executed-from="$(pwd)" --pid=$$ "$@"
exit $?
else
open -a "$ATOM_PATH/$ATOM_APP_NAME" -n --args --executed-from="$(pwd)" --pid=$$ "$@"
fi
elif [ $OS == 'Linux' ]; then
SCRIPT=`readlink -f "$0"`
USR_DIRECTORY=`readlink -f $(dirname $SCRIPT)/..`
ATOM_PATH="$USR_DIRECTORY/share/atom/atom"
[ -x "$ATOM_PATH" ] || ATOM_PATH='/tmp/atom-build/Atom/atom'
if [ $EXPECT_OUTPUT ]; then
"$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@"
exit $?
else
nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > /dev/null 2>&1 &
fi
fi
# Exits this process when Atom is used as $EDITOR
on_die() {
exit 0
}
trap 'on_die' SIGQUIT SIGTERM
# If the wait flag is set, don't exit this process until Atom tells it to.
if [ $WAIT ]; then
while true; do
sleep 1
+21 -12
Ver Arquivo
@@ -11,10 +11,6 @@ _ = require 'underscore-plus'
packageJson = require '../package.json'
# OAuth token for atom-bot
# TODO Remove once all repositories are public
process.env.ATOM_ACCESS_TOKEN ?= '362295be4c5258d3f7b967bbabae662a455ca2a7'
# Shim harmony collections in case grunt was invoked without harmony
# collections enabled
_.extend(global, require('harmony-collections')) unless global.WeakMap?
@@ -43,23 +39,33 @@ module.exports = (grunt) ->
if process.platform is 'win32'
appName = 'Atom'
tmpDir = os.tmpdir()
installRoot = process.env.ProgramFiles
buildDir = grunt.option('build-dir') ? path.join(tmpDir, 'atom-build')
symbolsDir = path.join(buildDir, 'Atom.breakpad.syms')
shellAppDir = path.join(buildDir, appName)
contentsDir = shellAppDir
appDir = path.join(shellAppDir, 'resources', 'app')
atomShellDownloadDir = path.join(os.tmpdir(), 'atom-cached-atom-shells')
else
installDir = path.join(process.env.ProgramFiles, appName)
else if process.platform is 'darwin'
appName = 'Atom.app'
tmpDir = '/tmp'
installRoot = '/Applications'
buildDir = grunt.option('build-dir') ? path.join(tmpDir, 'atom-build')
symbolsDir = path.join(buildDir, 'Atom.breakpad.syms')
shellAppDir = path.join(buildDir, appName)
contentsDir = path.join(shellAppDir, 'Contents')
appDir = path.join(contentsDir, 'Resources', 'app')
atomShellDownloadDir = '/tmp/atom-cached-atom-shells'
installDir = path.join(installRoot, appName)
installDir = path.join('/Applications', appName)
else
appName = 'Atom'
tmpDir = '/tmp'
buildDir = grunt.option('build-dir') ? path.join(tmpDir, 'atom-build')
symbolsDir = path.join(buildDir, 'Atom.breakpad.syms')
shellAppDir = path.join(buildDir, appName)
contentsDir = shellAppDir
appDir = path.join(shellAppDir, 'resources', 'app')
atomShellDownloadDir = '/tmp/atom-cached-atom-shells'
installDir = process.env.INSTALL_PREFIX ? '/usr/local'
coffeeConfig =
options:
@@ -127,7 +133,7 @@ module.exports = (grunt) ->
grunt.initConfig
pkg: grunt.file.readJSON('package.json')
atom: {appDir, appName, buildDir, contentsDir, installDir, shellAppDir}
atom: {appDir, appName, symbolsDir, buildDir, contentsDir, installDir, shellAppDir}
coffee: coffeeConfig
@@ -227,6 +233,9 @@ module.exports = (grunt) ->
grunt.registerTask('compile', ['coffee', 'prebuild-less', 'cson', 'peg'])
grunt.registerTask('lint', ['coffeelint', 'csslint', 'lesslint'])
grunt.registerTask('test', ['shell:kill-atom', 'run-specs'])
grunt.registerTask('ci', ['output-disk-space', 'download-atom-shell', 'build', 'set-version', 'lint', 'test', 'codesign', 'publish-build'])
grunt.registerTask('ci', ['output-disk-space', 'download-atom-shell', 'build', 'dump-symbols', 'set-version', 'check-licenses', 'lint', 'test', 'codesign', 'publish-build'])
grunt.registerTask('docs', ['markdown:guides', 'build-docs'])
grunt.registerTask('default', ['download-atom-shell', 'build', 'set-version', 'install'])
defaultTasks = ['download-atom-shell', 'build', 'set-version']
defaultTasks.push 'install' unless process.platform is 'linux'
grunt.registerTask('default', defaultTasks)
+11 -7
Ver Arquivo
@@ -6,30 +6,34 @@
"url": "https://github.com/atom/atom.git"
},
"dependencies": {
"biscotto": "0.0.17",
"first-mate": "~0.13.0",
"async": "~0.2.9",
"biscotto": ">=2.1.1 <3.0",
"formidable": "~1.0.14",
"fs-plus": "2.x",
"github-releases": "~0.2.0",
"grunt": "~0.4.1",
"grunt-cli": "~0.1.9",
"grunt-coffeelint": "git://github.com/atom/grunt-coffeelint.git",
"grunt-contrib-csslint": "~0.1.2",
"grunt-contrib-coffee": "~0.7.0",
"grunt-contrib-coffee": "~0.9.0",
"grunt-contrib-less": "~0.8.0",
"grunt-cson": "0.5.0",
"grunt-download-atom-shell": "git+https://atom-bot:362295be4c5258d3f7b967bbabae662a455ca2a7@github.com/atom/grunt-download-atom-shell#v0.5.0",
"grunt-cson": "0.8.0",
"grunt-download-atom-shell": "git+https://atom-bot:467bac80a0017b96fb5be5cfc686f5e0cc607b10@github.com/atom/grunt-download-atom-shell#v0.6.1",
"grunt-lesslint": "0.13.0",
"grunt-markdown": "~0.4.0",
"grunt-peg": "~1.1.0",
"grunt-shell": "~0.3.1",
"harmony-collections": "~0.3.8",
"js-yaml": "~2.1.0",
"json-front-matter": "~0.1.3",
"legal-eagle": "~0.4.0",
"minidump": "0.5.x",
"rcedit": "~0.1.2",
"request": "~2.27.0",
"rimraf": "~2.2.2",
"runas": "0.5.x",
"underscore-plus": "1.x",
"unzip": "~0.1.9",
"vm-compatibility-layer": "~0.1.0",
"walkdir": "0.0.7"
"npm": "~1.4.5"
}
}
+13 -4
Ver Arquivo
@@ -14,14 +14,13 @@ module.exports = (grunt) ->
if process.platform is 'darwin'
cp 'atom-shell/Atom.app', shellAppDir
else if process.platform is 'win32'
else
cp 'atom-shell', shellAppDir
mkdir appDir
cp 'atom.sh', path.join(appDir, 'atom.sh')
cp 'package.json', path.join(appDir, 'package.json')
cp 'apm', path.join(appDir, 'apm')
packageDirectories = []
nonPackageDirectories = [
@@ -47,12 +46,21 @@ module.exports = (grunt) ->
path.join('less', 'dist')
path.join('less', 'test')
path.join('bootstrap', 'docs')
path.join('spellchecker', 'vendor')
path.join('bootstrap', 'examples')
path.join('pegjs', 'examples')
# Add .* to avoid matching hunspell_dictionaries.
path.join('spellchecker', 'vendor', 'hunspell', '.*')
path.join('xmldom', 'test')
path.join('jasmine-reporters', 'ext')
path.join('build', 'Release', 'obj.target')
path.join('build', 'Release', '.deps')
path.join('vendor', 'apm')
path.join('resources', 'mac')
path.join('resources', 'win')
]
# Hunspell dictionaries are only not needed on OS X.
if process.platform is 'darwin'
ignoredPaths.push path.join('spellchecker', 'vendor', 'hunspell_dictionaries')
ignoredPaths = ignoredPaths.map (ignoredPath) -> "(#{ignoredPath})"
nodeModulesFilter = new RegExp(ignoredPaths.join('|'))
packageFilter = new RegExp("(#{ignoredPaths.join('|')})|(.+\\.(cson|coffee)$)")
@@ -64,13 +72,14 @@ module.exports = (grunt) ->
cp 'spec', path.join(appDir, 'spec')
cp 'src', path.join(appDir, 'src'), filter: /.+\.(cson|coffee)$/
cp 'static', path.join(appDir, 'static')
cp 'apm', path.join(appDir, 'apm'), filter: nodeModulesFilter
if process.platform is 'darwin'
grunt.file.recurse path.join('resources', 'mac'), (sourcePath, rootDirectory, subDirectory='', filename) ->
unless /.+\.plist/.test(sourcePath)
grunt.file.copy(sourcePath, path.resolve(appDir, '..', subDirectory, filename))
dependencies = ['compile']
dependencies = ['compile', "generate-license:save"]
dependencies.push('copy-info-plist') if process.platform is 'darwin'
dependencies.push('set-exe-icon') if process.platform is 'win32'
grunt.task.run(dependencies...)
+28
Ver Arquivo
@@ -0,0 +1,28 @@
module.exports = (grunt) ->
grunt.registerTask 'check-licenses', 'Report the licenses of all dependencies', ->
legalEagle = require 'legal-eagle'
{size, keys} = require 'underscore-plus'
done = @async()
options =
path: process.cwd()
omitPermissive: true
overrides: require './license-overrides'
legalEagle options, (err, summary) ->
if err?
console.error(err)
exit 1
for key of summary
delete summary[key] if key.match /^atom@/
if size(summary)
console.error "Found dependencies without permissive licenses:"
for name in keys(summary).sort()
console.error "#{name}"
console.error " License: #{summary[name].license}"
console.error " Repository: #{summary[name].repository}"
process.exit 1
done()
-102
Ver Arquivo
@@ -1,102 +0,0 @@
path = require 'path'
_ = require 'underscore-plus'
fs = require 'fs-plus'
{ScopeSelector} = require 'first-mate'
module.exports = (grunt) ->
grunt.registerTask 'convert-theme', 'Convert a TextMate theme to an Atom theme', ->
if textMateThemePath = grunt.option('path')
textMateThemePath = path.resolve(textMateThemePath)
if grunt.file.isFile(textMateThemePath)
textMateTheme = new TextMateTheme(textMateThemePath)
themeName = path.basename(textMateThemePath, path.extname(textMateThemePath))
atomThemePath = path.join(path.dirname(textMateThemePath), "#{themeName.toLowerCase()}-syntax.css")
grunt.file.write(atomThemePath, textMateTheme.getStylesheet())
grunt.log.ok("Atom theme written to: #{atomThemePath}")
else
grunt.log.error("No theme file found at: #{textMateThemePath}")
false
else
grunt.log.error('Must specify --path=<path to TextMate theme>')
false
class TextMateTheme
constructor: (@path) ->
@rulesets = []
@buildRulesets()
buildRulesets: ->
{settings} = fs.readPlistSync(@path)
@buildGlobalSettingsRulesets(settings[0])
@buildScopeSelectorRulesets(settings[1..])
getStylesheet: ->
lines = []
for {selector, properties} in @getRulesets()
lines.push("#{selector} {")
lines.push " #{name}: #{value};" for name, value of properties
lines.push("}\n")
lines.join('\n')
getRulesets: -> @rulesets
buildGlobalSettingsRulesets: ({settings}) ->
{ background, foreground, caret, selection, lineHighlight } = settings
@rulesets.push
selector: '.editor, .editor .gutter'
properties:
'background-color': @translateColor(background)
'color': @translateColor(foreground)
@rulesets.push
selector: '.editor.is-focused .cursor'
properties:
'border-color': @translateColor(caret)
@rulesets.push
selector: '.editor.is-focused .selection .region'
properties:
'background-color': @translateColor(selection)
@rulesets.push
selector: '.editor.is-focused .line-number.cursor-line-no-selection, .editor.is-focused .line.cursor-line'
properties:
'background-color': @translateColor(lineHighlight)
buildScopeSelectorRulesets: (scopeSelectorSettings) ->
for { name, scope, settings } in scopeSelectorSettings
continue unless scope
@rulesets.push
comment: name
selector: @translateScopeSelector(scope)
properties: @translateScopeSelectorSettings(settings)
translateScopeSelector: (textmateScopeSelector) ->
new ScopeSelector(textmateScopeSelector).toCssSelector()
translateScopeSelectorSettings: ({ foreground, background, fontStyle }) ->
properties = {}
if fontStyle
fontStyles = fontStyle.split(/\s+/)
properties['font-weight'] = 'bold' if _.contains(fontStyles, 'bold')
properties['font-style'] = 'italic' if _.contains(fontStyles, 'italic')
properties['text-decoration'] = 'underline' if _.contains(fontStyles, 'underline')
properties['color'] = @translateColor(foreground) if foreground
properties['background-color'] = @translateColor(background) if background
properties
translateColor: (textmateColor) ->
if textmateColor.length <= 7
textmateColor
else
r = parseInt(textmateColor[1..2], 16)
g = parseInt(textmateColor[3..4], 16)
b = parseInt(textmateColor[5..6], 16)
a = parseInt(textmateColor[7..8], 16)
a = Math.round((a / 255.0) * 100) / 100
"rgba(#{r}, #{g}, #{b}, #{a})"
+72 -8
Ver Arquivo
@@ -1,26 +1,64 @@
path = require 'path'
fs = require 'fs'
async = require 'async'
fs = require 'fs-plus'
request = require 'request'
module.exports = (grunt) ->
{rm} = require('./task-helpers')(grunt)
cmd = path.join('node_modules', '.bin', 'coffee')
commonArgs = [path.join('build', 'node_modules', '.bin', 'biscotto'), '--']
opts =
stdio: 'inherit'
grunt.registerTask 'build-docs', 'Builds the API docs in src/app', ->
grunt.registerTask 'build-docs', 'Builds the API docs in src', ->
done = @async()
args = [commonArgs..., '--title', 'Atom API Documentation', '-o', 'docs/output/api', 'src/', '../text-buffer/src/range.coffee', '../text-buffer/src/point.coffee', '../text-buffer/src/marker.coffee']
grunt.util.spawn({cmd, args, opts}, done)
downloadIncludes (error, includePaths) ->
if error?
done(error)
else
rm('docs/output/api')
args = [
commonArgs...
'--title', 'Atom API Documentation'
'-o', 'docs/output/api'
'-r', 'docs/README.md'
'--stability', '1'
'src/'
includePaths...
]
grunt.util.spawn({cmd, args, opts}, done)
grunt.registerTask 'lint-docs', 'Generate stats about the doc coverage', ->
done = @async()
args = [commonArgs..., '--noOutput', 'src/']
grunt.util.spawn({cmd, args, opts}, done)
downloadIncludes (error, includePaths) ->
if error?
done(error)
else
args = [
commonArgs...
'--noOutput'
'src/'
includePaths...
]
grunt.util.spawn({cmd, args, opts}, done)
grunt.registerTask 'missing-docs', 'Generate stats about the doc coverage', ->
done = @async()
args = [commonArgs..., '--noOutput', '--missing', 'src/']
grunt.util.spawn({cmd, args, opts}, done)
downloadIncludes (error, includePaths) ->
if error?
done(error)
else
args = [
commonArgs...
'--noOutput'
'--missing'
'src/'
includePaths...
]
grunt.util.spawn({cmd, args, opts}, done)
grunt.registerTask 'copy-docs', 'Copies over latest API docs to atom-docs', ->
done = @async()
@@ -94,3 +132,29 @@ module.exports = (grunt) ->
grunt.util.spawn({cmd, args, opts}, callback)
grunt.util.async.waterfall [fetchTag, stageDocs, fetchSha, commitChanges, pushOrigin, pushHeroku], done
downloadFileFromRepo = ({repo, file}, callback) ->
uri = "https://raw.github.com/atom/#{repo}/master/#{file}"
request uri, (error, response, contents) ->
return callback(error) if error?
downloadPath = path.join('docs', 'includes', repo, file)
fs.writeFile downloadPath, contents, (error) ->
callback(error, downloadPath)
downloadIncludes = (callback) ->
includes = [
{repo: 'atom-keymap', file: 'src/keymap.coffee'}
{repo: 'atom-keymap', file: 'src/key-binding.coffee'}
{repo: 'first-mate', file: 'src/grammar.coffee'}
{repo: 'first-mate', file: 'src/grammar-registry.coffee'}
{repo: 'node-pathwatcher', file: 'src/directory.coffee'}
{repo: 'node-pathwatcher', file: 'src/file.coffee'}
{repo: 'space-pen', file: 'src/space-pen.coffee'}
{repo: 'text-buffer', file: 'src/marker.coffee'}
{repo: 'text-buffer', file: 'src/point.coffee'}
{repo: 'text-buffer', file: 'src/range.coffee'}
{repo: 'text-buffer', file: 'src/text-buffer.coffee'}
{repo: 'theorist', file: 'src/model.coffee'}
]
async.map(includes, downloadFileFromRepo, callback)
+39
Ver Arquivo
@@ -0,0 +1,39 @@
async = require 'async'
fs = require 'fs-plus'
path = require 'path'
minidump = require 'minidump'
module.exports = (grunt) ->
{mkdir, rm} = require('./task-helpers')(grunt)
dumpSymbolTo = (binaryPath, targetDirectory, callback) ->
minidump.dumpSymbol binaryPath, (error, content) ->
return callback(error) if error?
moduleLine = /MODULE [^ ]+ [^ ]+ ([0-9A-F]+) (.*)\n/.exec(content)
if moduleLine.length isnt 3
return callback("Invalid output when dumping symbol for #{binaryPath}")
filename = moduleLine[2]
targetPathDirname = path.join(targetDirectory, filename, moduleLine[1])
mkdir targetPathDirname
targetPath = path.join(targetPathDirname, "#{filename}.sym")
fs.writeFile(targetPath, content, callback)
grunt.registerTask 'dump-symbols', 'Dump symbols for native modules', ->
done = @async()
symbolsDir = grunt.config.get('atom.symbolsDir')
rm symbolsDir
mkdir symbolsDir
tasks = []
onFile = (binaryPath) ->
if /.*\.node$/.test(binaryPath)
tasks.push(dumpSymbolTo.bind(this, binaryPath, symbolsDir))
onDirectory = ->
true
fs.traverseTreeSync 'node_modules', onFile, onDirectory
async.parallel tasks, done
+46
Ver Arquivo
@@ -0,0 +1,46 @@
fs = require 'fs'
path = require 'path'
module.exports = (grunt) ->
grunt.registerTask 'generate-license', 'Generate the license, including the licenses of all dependencies', (mode) ->
legalEagle = require 'legal-eagle'
done = @async()
options =
path: process.cwd()
overrides: require './license-overrides'
legalEagle options, (err, dependencyLicenses) ->
if err?
console.error(err)
exit 1
licenseText = getLicenseText(dependencyLicenses)
if mode is 'save'
targetPath = path.join(grunt.config.get('atom.appDir'), 'LICENSE')
fs.writeFileSync(targetPath, licenseText)
else
console.log licenseText
done()
getLicenseText = (dependencyLicenses) ->
{keys} = require 'underscore-plus'
text = """
Copyright 2014 GitHub, Inc.
This application bundles the following third-party packages in accordance
with the following licenses:\n\n
"""
names = keys(dependencyLicenses).sort()
for name in names
{license, source, sourceText} = dependencyLicenses[name]
text += "-------------------------------------------------------------------------\n\n"
text += "Package: #{name}\n"
text += "License: #{license}\n"
text += "License Source: #{source}\n" if source?
if sourceText?
text += "Source Text:\n\n"
text += sourceText
text += '\n'
text
+31 -3
Ver Arquivo
@@ -1,4 +1,7 @@
fs = require 'fs'
path = require 'path'
fs = require 'fs-plus'
runas = null
module.exports = (grunt) ->
{cp, mkdir, rm} = require('./task-helpers')(grunt)
@@ -6,6 +9,31 @@ module.exports = (grunt) ->
grunt.registerTask 'install', 'Install the built application', ->
installDir = grunt.config.get('atom.installDir')
shellAppDir = grunt.config.get('atom.shellAppDir')
rm installDir
mkdir path.dirname(installDir)
cp shellAppDir, installDir
if process.platform is 'win32'
runas ?= require 'runas'
copyFolder = path.resolve 'script', 'copy-folder.cmd'
if runas('cmd', ['/c', copyFolder, shellAppDir, installDir], admin: true) isnt 0
grunt.log.error("Failed to copy #{shellAppDir} to #{installDir}")
createShortcut = path.resolve 'script', 'create-shortcut.cmd'
runas('cmd', ['/c', createShortcut, path.join(installDir, 'atom.exe'), 'Atom'])
else if process.platform is 'darwin'
rm installDir
mkdir path.dirname(installDir)
cp shellAppDir, installDir
else
binDir = path.join(installDir, 'bin')
shareDir = path.join(installDir, 'share', 'atom')
mkdir binDir
cp 'atom.sh', path.join(binDir, 'atom')
rm shareDir
mkdir path.dirname(shareDir)
cp shellAppDir, shareDir
# Create relative symbol link for apm.
process.chdir(binDir)
rm('apm')
fs.symlinkSync(path.join('..', 'share', 'atom', 'resources', 'app', 'apm', 'node_modules', '.bin', 'apm'), 'apm')
fs.chmodSync(path.join(shareDir, 'atom'), "755")
+62
Ver Arquivo
@@ -0,0 +1,62 @@
module.exports =
'aws-sign@0.3.0':
repository: 'https://github.com/mikeal/aws-sign'
license: 'MIT'
source: 'index.js'
sourceText: """
/*!
* knox - auth
* Copyright(c) 2010 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
<content omitted>
"""
'bufferjs@2.0.0':
repository: 'https://github.com/coolaj86/node-bufferjs'
license: 'MIT'
source: 'LICENSE.MIT'
sourceText: """
Copyright (c) 2010 AJ ONeal (and Contributors)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""
'buffers@0.1.1':
repository: "http://github.com/substack/node-buffers"
license: 'MIT'
source: 'README.markdown'
sourceText: """
<content omitted>
license
=======
MIT/X11
"""
'specificity@0.1.3':
repository: 'https://github.com/keeganstreet/specificity'
license: 'MIT'
source: 'package.json in repository'
'promzard@0.2.0':
license: 'ISC'
source: 'LICENSE in the repository'
sourceText: """
The ISC License
Copyright (c) Isaac Z. Schlueter
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""
+31
Ver Arquivo
@@ -0,0 +1,31 @@
fs = require 'fs'
path = require 'path'
_ = require 'underscore-plus'
fillTemplate = (filePath, data) ->
template = _.template(String(fs.readFileSync(filePath + '.in')))
filled = template(data)
fs.writeFileSync(filePath, filled)
module.exports = (grunt) ->
{spawn} = require('./task-helpers')(grunt)
grunt.registerTask 'mkdeb', 'Create debian package', ->
done = @async()
{name, version, description} = grunt.file.readJSON('package.json')
section = 'devel'
arch = 'amd64'
maintainer = 'GitHub <atom@github.com>'
data = {name, version, description, section, arch, maintainer}
control = path.join('resources', 'linux', 'debian', 'control')
fillTemplate(control, data)
desktop = path.join('resources', 'linux', 'Atom.desktop')
fillTemplate(desktop, data)
icon = path.join('resources', 'atom.png')
buildDir = grunt.config.get('atom.buildDir')
cmd = path.join('script', 'mkdeb')
args = [version, control, desktop, icon, buildDir]
spawn({cmd, args}, done)
+57 -35
Ver Arquivo
@@ -2,14 +2,17 @@ child_process = require 'child_process'
path = require 'path'
_ = require 'underscore-plus'
async = require 'async'
fs = require 'fs-plus'
GitHub = require 'github-releases'
request = require 'request'
grunt = null
maxReleases = 10
assetName = 'atom-mac.zip'
assetPath = "/tmp/atom-build/#{assetName}"
assets = [
{assetName: 'atom-mac.zip', sourceName: 'Atom.app'}
{assetName: 'atom-mac-symbols.zip', sourceName: 'Atom.breakpad.syms'}
]
commitSha = process.env.JANKY_SHA1
token = process.env.ATOM_ACCESS_TOKEN
defaultHeaders =
@@ -18,39 +21,48 @@ defaultHeaders =
module.exports = (gruntObject) ->
grunt = gruntObject
grunt.registerTask 'publish-build', 'Publish the built app', ->
return unless process.platform is 'darwin'
return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master'
done = @async()
buildDir = grunt.config.get('atom.buildDir')
createBuildRelease (error, release) ->
return done(error) if error?
zipApp (error) ->
zipApps buildDir, assets, (error) ->
return done(error) if error?
uploadAsset release, (error) ->
uploadAssets release, buildDir, assets, (error) ->
return done(error) if error?
publishRelease release, (error) ->
return done(error) if error?
getAtomDraftRelease (error, release) ->
return done(error) if error?
deleteExistingAsset release, (error) ->
assetNames = (asset.assetName for asset in assets)
deleteExistingAssets release, assetNames, (error) ->
return done(error) if error?
uploadAsset(release, done)
uploadAssets(release, buildDir, assets, done)
logError = (message, error, details) ->
grunt.log.error(message)
grunt.log.error(error.message ? error) if error?
grunt.log.error(details) if details
zipApp = (callback) ->
fs.removeSync(assetPath)
zipApps = (buildDir, assets, callback) ->
zip = (directory, sourceName, assetName, callback) ->
options = {cwd: directory, maxBuffer: Infinity}
child_process.exec "zip -r --symlinks #{assetName} #{sourceName}", options, (error, stdout, stderr) ->
if error?
logError("Zipping #{sourceName} failed", error, stderr)
callback(error)
options = {cwd: path.dirname(assetPath), maxBuffer: Infinity}
child_process.exec "zip -r --symlinks #{assetName} Atom.app", options, (error, stdout, stderr) ->
if error?
logError('Zipping Atom.app failed', error, stderr)
callback(error)
tasks = []
for {assetName, sourceName} in assets
fs.removeSync(path.join(buildDir, assetName))
tasks.push(zip.bind(this, buildDir, sourceName, assetName))
async.parallel(tasks, callback)
getRelease = (callback) ->
options =
@@ -93,10 +105,12 @@ deleteRelease = (release) ->
if error? or response.statusCode isnt 204
logError('Deleting release failed', error, body)
deleteExistingAsset = (release, callback) ->
for asset in release.assets when asset.name is assetName
deleteExistingAssets = (release, assetNames, callback) ->
[callback, assetNames] = [assetNames, callback] if not callback?
deleteAsset = (url, callback) ->
options =
uri: asset.url
uri: url
method: 'DELETE'
headers: defaultHeaders
request options, (error, response, body='') ->
@@ -106,9 +120,10 @@ deleteExistingAsset = (release, callback) ->
else
callback()
return
callback()
tasks = []
for asset in release.assets when not assetNames? or asset.name in assetNames
tasks.push(deleteAsset.bind(this, asset.url))
async.parallel(tasks, callback)
createBuildRelease = (callback) ->
getRelease (error, release) ->
@@ -117,7 +132,7 @@ createBuildRelease = (callback) ->
return
if release?
deleteExistingAsset release, (error) ->
deleteExistingAssets release, (error) ->
callback(error, release)
return
@@ -139,23 +154,30 @@ createBuildRelease = (callback) ->
else
callback(null, release)
uploadAsset = (release, callback) ->
options =
uri: release.upload_url.replace(/\{.*$/, "?name=#{assetName}")
method: 'POST'
headers: _.extend({
'Content-Type': 'application/zip'
'Content-Length': fs.getSizeSync(assetPath)
}, defaultHeaders)
uploadAssets = (release, buildDir, assets, callback) ->
upload = (release, assetName, assetPath, callback) ->
options =
uri: release.upload_url.replace(/\{.*$/, "?name=#{assetName}")
method: 'POST'
headers: _.extend({
'Content-Type': 'application/zip'
'Content-Length': fs.getSizeSync(assetPath)
}, defaultHeaders)
assetRequest = request options, (error, response, body='') ->
if error? or response.statusCode >= 400
logError('Upload release asset failed', error, body)
callback(error ? new Error(response.statusCode))
else
callback(null, release)
assetRequest = request options, (error, response, body='') ->
if error? or response.statusCode >= 400
logError("Upload release asset #{assetName} failed", error, body)
callback(error ? new Error(response.statusCode))
else
callback(null, release)
fs.createReadStream(assetPath).pipe(assetRequest)
fs.createReadStream(assetPath).pipe(assetRequest)
tasks = []
for {assetName, sourceName} in assets
assetPath = path.join(buildDir, assetName)
tasks.push(upload.bind(this, release, assetName, assetPath))
async.parallel(tasks, callback)
publishRelease = (release, callback) ->
options =
+1 -1
Ver Arquivo
@@ -8,7 +8,7 @@ request = require 'request'
module.exports = (grunt) ->
{spawn} = require('./task-helpers')(grunt)
baseUrl = "https://www.atom.io/api/packages"
baseUrl = "https://atom.io/api/packages"
packageExists = (packageName, token, callback) ->
requestSettings =
+3 -1
Ver Arquivo
@@ -41,10 +41,12 @@ module.exports = (grunt) ->
strings =
CompanyName: 'GitHub, Inc.'
FileDescription: 'The hackable, collaborative editor'
FileDescription: 'The hackable editor'
LegalCopyright: 'Copyright (C) 2013 GitHub, Inc. All rights reserved'
ProductName: 'Atom'
ProductVersion: version
rcedit = require('rcedit')
rcedit(shellExePath, {'version-string': strings}, done)
else
done()
+29 -15
Ver Arquivo
@@ -1,27 +1,41 @@
fs = require 'fs'
fs = require 'fs-plus'
path = require 'path'
walkdir = require 'walkdir'
module.exports = (grunt) ->
cp: (source, destination, {filter}={}) ->
unless grunt.file.exists(source)
grunt.fatal("Cannot copy non-existent #{source.cyan} to #{destination.cyan}")
try
walkdir.sync source, (sourcePath, stats) ->
return if filter?.test(sourcePath)
copyFile = (sourcePath, destinationPath) ->
return if filter?.test(sourcePath)
destinationPath = path.join(destination, path.relative(source, sourcePath))
if stats.isSymbolicLink()
grunt.file.mkdir(path.dirname(destinationPath))
fs.symlinkSync(fs.readlinkSync(sourcePath), destinationPath)
else if stats.isFile()
grunt.file.copy(sourcePath, destinationPath)
stats = fs.lstatSync(sourcePath)
if stats.isSymbolicLink()
grunt.file.mkdir(path.dirname(destinationPath))
fs.symlinkSync(fs.readlinkSync(sourcePath), destinationPath)
else if stats.isFile()
grunt.file.copy(sourcePath, destinationPath)
if grunt.file.exists(destinationPath)
fs.chmodSync(destinationPath, fs.statSync(sourcePath).mode)
catch error
grunt.fatal(error)
if grunt.file.exists(destinationPath)
fs.chmodSync(destinationPath, fs.statSync(sourcePath).mode)
if grunt.file.isFile(source)
copyFile(source, destination)
else
try
onFile = (sourcePath) ->
destinationPath = path.join(destination, path.relative(source, sourcePath))
copyFile(sourcePath, destinationPath)
onDirectory = (sourcePath) ->
if fs.isSymbolicLinkSync(sourcePath)
destinationPath = path.join(destination, path.relative(source, sourcePath))
copyFile(sourcePath, destinationPath)
false
else
true
fs.traverseTreeSync source, onFile, onDirectory
catch error
grunt.fatal(error)
grunt.verbose.writeln("Copied #{source.cyan} to #{destination.cyan}.")
+22
Ver Arquivo
@@ -0,0 +1,22 @@
path = require 'path'
module.exports = (grunt) ->
grunt.registerTask 'update-octicons', 'Update octicon font and LESS variables', ->
pathToOcticons = path.resolve('..', 'octicons')
if grunt.file.isDir(pathToOcticons)
# Copy font-file
fontSrc = path.join(pathToOcticons, 'octicons', 'octicons.woff')
fontDest = path.resolve('static', 'octicons.woff')
grunt.file.copy(fontSrc, fontDest)
# Update Octicon UTF codes
glyphsSrc = path.join(pathToOcticons, 'data', 'glyphs.yml')
output = []
for {css, code} in grunt.file.readYAML(glyphsSrc)
output.push "@#{css}: \"\\#{code}\";"
octiconUtfDest = path.resolve('static', 'variables', 'octicon-utf-codes.less')
grunt.file.write(octiconUtfDest, "#{output.join('\n')}\n")
else
grunt.log.error("octicons repo must be cloned to #{pathToOcticons}")
false
+60
Ver Arquivo
@@ -0,0 +1,60 @@
# Welcome to the Atom API Documentation
![Atom](http://i.imgur.com/OrTvUAD.png)
## FAQ
### Where do I start?
Check out [EditorView][EditorView] and [Editor][Editor] classes for a good
overview of the main editor API.
### How do I access these classes?
Check out the [Atom][Atom] class docs to see what globals are available and
what they provide.
You can also require many of these classes in your package via:
```coffee
{EditorView} = require 'atom'
```
The classes available from `require 'atom'` are:
* [BufferedProcess][BufferedProcess]
* [BufferedNodeProcess][BufferedNodeProcess]
* [EditorView][EditorView]
* [Git][Git]
* [Point][Point]
* [Range][Range]
* [ScrollView][ScrollView]
* [SelectListView][SelectListView]
* [View][View]
* [WorkspaceView][WorkspaceView]
* [Workspace][Workspace]
### How do I create a package?
You probably want to read the [creating a package][creating-a-package]
doc first and come back here when you are done.
### Where are the node docs?
Atom ships with node 0.11.10 and the comprehensive node API docs are available
[here][node-docs].
[Atom]: ../classes/Atom.html
[BufferedProcess]: ../classes/BufferedProcess.html
[BufferedNodeProcess]: ../classes/BufferedNodeProcess.html
[Editor]: ../classes/Editor.html
[EditorView]: ../classes/EditorView.html
[Git]: ../classes/Git.html
[Point]: ../classes/Point.html
[Range]: ../classes/Range.html
[ScrollView]: ../classes/ScrollView.html
[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
+76
Ver Arquivo
@@ -0,0 +1,76 @@
## Configuration API
### Reading Config Settings
If you are writing a package that you want to make configurable, you'll need to
read config settings via the `atom.config` global. You can read the current
value of a namespaced config key with `atom.config.get`:
```coffeescript
# read a value with `config.get`
@showInvisibles() if atom.config.get "editor.showInvisibles"
```
Or you can use the `::observeConfig` to track changes from any view object.
```coffeescript
class MyView extends View
initialize: ->
@observeConfig 'editor.fontSize', () =>
@adjustFontSize()
```
The `::observeConfig` method will call the given callback immediately with the
current value for the specified key path, and it will also call it in the future
whenever the value of that key path changes.
Subscriptions made with `observeConfig` are automatically canceled when the
view is removed. You can cancel config subscriptions manually via the
`unobserveConfig` method.
```coffeescript
view1.unobserveConfig() # unobserve all properties
```
You can add the ability to observe config values to non-view classes by
extending their prototype with the `ConfigObserver` mixin:
```coffeescript
{ConfigObserver} = require 'atom'
class MyClass
ConfigObserver.includeInto(this)
constructor: ->
@observeConfig 'editor.showInvisibles', -> # ...
destroy: ->
@unobserveConfig()
```
### Writing Config Settings
The `atom.config` database is populated on startup from `~/.atom/config.cson`,
but you can programmatically write to it with `atom.config.set`:
```coffeescript
# basic key update
atom.config.set("core.showInvisibles", true)
```
You should never mutate the value of a config key, because that would circumvent
the notification of observers. You can however use methods like `pushAtKeyPath`,
`unshiftAtKeyPath`, and `removeAtKeyPath` to manipulate mutable config values.
```coffeescript
atom.config.pushAtKeyPath("core.disabledPackages", "wrap-guide")
atom.config.removeAtKeyPath("core.disabledPackages", "terminal")
```
You can also use `setDefaults`, which will assign default values for keys that
are always overridden by values assigned with `set`. Defaults are not written
out to the the `config.json` file to prevent it from becoming cluttered.
```coffeescript
atom.config.setDefaults("editor", fontSize: 18, showInvisibles: true)
```
+34
Ver Arquivo
@@ -0,0 +1,34 @@
# Globals
Atom exposes several services through singleton objects accessible via the
`atom` global:
* atom
* workspace:
Manipulate and query the state of the user interface for the current
window. Open editors, manipulate panes.
* workspaceView:
Similar to workspace, but provides access to the root of all views in the
current window.
* project:
Access the directory associated with the current window. Load editors,
perform project-wide searches, register custom openers for special file
types.
* config:
Read, write, and observe user configuration settings.
* keymap:
Add and query the currently active keybindings.
* deserializers:
Deserialize instances from their state objects and register deserializers.
* packages:
Activate, deactivate, and query user packages.
* themes:
Activate, deactivate, and query user themes.
* contextMenu:
Register context menus.
* menu:
Register application menus.
* pasteboard:
Read from and write to the system pasteboard.
* syntax:
Assign and query syntactically-scoped properties.
+139
Ver Arquivo
@@ -0,0 +1,139 @@
# Keymaps In-Depth
## Structure of a Keymap File
Keymap files are encoded as JSON or CSON files containing nested hashes. They
work much like stylesheets, but instead of applying style properties to elements
matching the selector, they specify the meaning of keystrokes on elements
matching the selector. Here is an example of some bindings that apply when
keystrokes pass through elements with the class `.editor`:
```coffee
'.editor':
'cmd-delete': 'editor:backspace-to-beginning-of-line'
'alt-backspace': 'editor:backspace-to-beginning-of-word'
'ctrl-A': 'editor:select-to-first-character-of-line'
'ctrl-shift-e': 'editor:select-to-end-of-line'
'cmd-left': 'editor:move-to-first-character-of-line'
'.editor:not(.mini)'
'cmd-alt-[': 'editor:fold-current-row'
'cmd-alt-]': 'editor:unfold-current-row'
```
Beneath the first selector are several bindings, mapping specific *keystroke
patterns* to *commands*. When an element with the `.editor` class is focused and
`cmd-delete` is pressed, an custom DOM event called
`editor:backspace-to-beginning-of-line` is emitted on the `.editor` element.
The second selector group also targets editors, but only if they don't have the
`.mini` class. In this example, the commands for code folding don't really make
sense on mini-editors, so the selector restricts them to regular editors.
### Keystroke Patterns
Keystroke patterns express one or more keystrokes combined with optional
modifier keys. For example: `ctrl-w v`, or `cmd-shift-up`. A keystroke is
composed of the following symbols, separated by a `-`. A multi-keystroke pattern
can be expressed as keystroke patterns separated by spaces.
| Type | Examples
| --------------------|----------------------------
| Character literals | `a` `4` `$`
| Modifier keys | `cmd` `ctrl` `alt` `shift`
| Special keys | `enter` `escape` `backspace` `delete` `tab` `home` `end` `pageup` `pagedown` `left` `right` `up` `down`
### Commands
Commands are custom DOM events that are triggered when a keystroke matches a
binding. This allows user interface code to listen for named commands without
specifying the specific keybinding that triggers it. For example, the following
code sets up {EditorView} to listen for commands to move the cursor to the first
character of the current line:
```coffee
class EditorView
listenForEvents: ->
@command 'editor:move-to-first-character-of-line', =>
@editor.moveCursorToFirstCharacterOfLine()
```
The `::command` method is basically an enhanced version of jQuery's `::on`
method that listens for a custom DOM event and adds some metadata to the DOM,
which is read by the command palette.
When you are looking to bind new keys, it is often useful to use the command
palette (`ctrl-shift-p`) to discover what commands are being listened for in a
given focus context. Commands are "humanized" following a simple algorithm, so a
command like `editor:fold-current-row` would appear as "Editor: Fold Current
Row".
### Specificity and Cascade Order
As is the case with CSS applying styles, when multiple bindings match for a
single element, the conflict is resolved by choosing the most *specific*
selector. If two matching selectors have the same specificity, the binding
for the selector appearing later in the cascade takes precedence.
Currently, there's no way to specify selector ordering within a single keymap,
because JSON objects do not preserve order. We eventually plan to introduce a
custom CSS-like file format for keymaps that allows for ordering within a single
file. For now, we've opted to handle cases where selector ordering is critical
by breaking the keymap into two separate files, such as `snippets-1.cson` and
`snippets-2.cson`.
## Removing Bindings
When the keymap system encounters a binding with the `unset!` directive as its
command, it will treat the current element as if it had no key bindings matching
the current keystroke sequence and continue searching from its parent. If you
want to remove a binding from a keymap you don't control, such as keymaps in
Atom core or in packages, use the `unset!` directive.
## Forcing Chromium's Native Keystroke Handling
If you want to force the native browser behavior for a given keystroke, use the
`native!` directive as the command of a binding. This can be useful to enable
the correct behavior in native input elements, for example. If you apply the
`.native-key-bindings` class to an element, all the keystrokes typically handled
by the browser will be assigned the `native!` directive.
## Overloading Key Bindings
Occasionally, it makes sense to layer multiple actions on top of the same key
binding. An example of this is the snippets package. Snippets are inserted by
typing a snippet prefix such as `for` and then pressing `tab`. Every time `tab`
is pressed, we want to execute code attempting to expand a snippet if one exists
for the text preceding the cursor. If a snippet *doesn't* exist, we want `tab`
to actually insert whitespace.
To achieve this, the snippets package makes use of the `.abortKeyBinding()`
method on the event object representing the `snippets:expand` command.
```coffee-script
# pseudo-code
editor.command 'snippets:expand', (e) =>
if @cursorFollowsValidPrefix()
@expandSnippet()
else
e.abortKeyBinding()
```
When the event handler observes that the cursor does not follow a valid prefix,
it calls `e.abortKeyBinding()`, telling the keymap system to continue searching
for another matching binding.
## Step-by-Step: How Keydown Events are Mapped to Commands
* A keydown event occurs on a *focused* element.
* Starting at the focused element, the keymap walks upward towards the root of
the document, searching for the most specific CSS selector that matches the
current DOM element and also contains a keystroke pattern matching the keydown
event.
* When a matching keystroke pattern is found, the search is terminated and the
pattern's corresponding command is triggered on the current element.
* If `.abortKeyBinding()` is called on the triggered event object, the search
is resumed, triggering a binding on the next-most-specific CSS selector for
the same element or continuing upward to parent elements.
* If no bindings are found, the event is handled by Chromium normally.
@@ -19,7 +19,7 @@ module.exports =
activate: (state) ->
@myObject =
if state
deserialize(state)
atom.deserializers.deserialize(state)
else
new MyObject("Hello")
@@ -31,7 +31,8 @@ module.exports =
```coffee-script
class MyObject
registerDeserializer(this)
atom.deserializers.add(this)
@deserialize: ({data}) -> new MyObject(data)
constructor: (@data) ->
serialize: -> { deserializer: 'MyObject', data: @data }
@@ -50,8 +51,8 @@ class-level method on the same class that implements `serialize`. This method's
job is to convert a state object returned from a previous call `serialize` back
into a genuine object.
#### registerDeserializer(klass)
You need to call the global `registerDeserializer` method with your class in
#### atom.deserializers.add(klass)
You need to call the `atom.deserializers.add` method with your class in
order to make it available to the deserialization system. Now you can call the
global `deserialize` method with state returned from `serialize`, and your
class's `deserialize` method will be selected automatically.
@@ -60,38 +61,15 @@ class's `deserialize` method will be selected automatically.
```coffee-script
class MyObject
atom.deserializers.add(this)
@version: 2
@deserialize: (state) -> ...
serialize: -> { version: MyObject.version, ... }
serialize: -> { version: @constructor.version, ... }
```
Your serializable class can optionally have a class-level `@version` property
and include a `version` key in its serialized state. When deserializing, Atom
will only attempt to call deserialize if the two versions match, and otherwise
return undefined. We plan on implementing a migration system in the future, but
this at least protects you from improperly deserializing old state. If you find
yourself in dire need of the migration system, let us know.
### Deferred Package Deserializers
If your package defers loading on startup with an `activationEvents` property in
its `package.cson`, your deserializers won't be loaded until your package is
activated. If you want to deserialize an object from your package on startup,
this could be a problem.
The solution is to also supply a `deferredDeserializers` array in your
`package.cson` with the names of all your deserializers. When Atom attempts to
deserialize some state whose `deserializer` matches one of these names, it will
load your package first so it can register any necessary deserializers before
proceeding.
For example, the markdown preview package doesn't fully load until a preview is
triggered. But if you refresh a window with a preview pane, it loads the
markdown package early so Atom can deserialize the view correctly.
```coffee-script
# markdown-preview/package.cson
'activationEvents': 'markdown-preview:toggle': '.editor'
'deferredDeserializers': ['MarkdownPreviewView']
...
```
this at least protects you from improperly deserializing old state.
-34
Ver Arquivo
@@ -1,34 +0,0 @@
## Building Atom
These guide is meant only for users who wish to help develop atom core,
if you're just interested in using atom you should just [download
atom][download].
## OSX
* Use OS X 10.8 or later
* Install the latest node 0.10.x release (32bit preferable)
* Clone [atom][atom-git] to `~/github/atom`
* Run `~/github/atom/script/build`
## Windows
* Install [Visual C++ 2010 Express][win-vs2010]
* Install the [latest 32bit Node 0.10.x][win-node]
* Install the [latest Python 2.7.x][win-python]
* Install [GitHub for Windows][win-github]
* Clone [atom/atom][atom-git] to `C:\Users\<user>\github\atom\`
* Add `C:\Python27;C:\Program Files\nodejs;C:\Users\<user>\github\atom\node_modules\`
to your PATH
* Set ATOM_ACCESS_TOKEN to your oauth2 credentials (run `security -q
find-generic-password -ws 'GitHub API Token'` on OSX to get your
credentials).
* Use the Windows GitHub shell and cd into `C:\Users\<user>\github\atom`
* Run `script\bootstrap`
[download]: https://github.com/atom/atom/releases/latest
[win-node]: http://nodejs.org/download/
[win-python]: http://www.python.org/download/
[win-github]: http://windows.github.com/
[win-vs2010]: http://www.microsoft.com/visualstudio/eng/products/visual-studio-2010-express
[atom-git]: https://github.com/atom/atom/
+142
Ver Arquivo
@@ -0,0 +1,142 @@
# Contributing to Atom Packages
The following is a set of guidelines for contributing to Atom packages, which
are hosted in the [Atom Organization](https://github.com/atom) on GitHub. If
you're unsure which package is causing your problem or if you're having an issue
with Atom core, please use the feedback form in the application or email
[atom@github.com](mailto:atom@github.com).
## Submitting Issues
* Include screenshots and animated GIFs whenever possible; they are immensely
helpful.
* Include the behavior you expected and other places you've seen that behavior
such as Emacs, vi, Xcode, etc.
* Check the dev tools (`alt-cmd-i`) for errors and stack traces to include.
* Check Console.app for stack traces to include if reporting a crash.
* Perform a cursory search to see if a similar issue has already been submitted.
## Hacking on Packages
### Cloning
The first step is creating your own clone. You can of course do this manually
with git, or you can use the `apm develop` command to create a clone based on
the package's `repository` field in the `package.json`.
For example, if you want to make changes to the `tree-view` package, run the
following command:
```
> apm develop tree-view
Cloning https://github.com/atom/tree-view ✓
Installing modules ✓
~/.atom/dev/packages/tree-view -> ~/github/tree-view
```
This clones the `tree-view` repository to `~/github`. If you prefer a different
path, specify it via the `ATOM_REPOS_HOME` environment variable.
### Running in Development Mode
Editing a package in Atom is a bit of a circular experience: you're using Atom
to modify itself. What happens if you temporarily break something? You don't
want the version of Atom you're using to edit to become useless in the process.
For this reason, you'll only want to load packages in **development mode** while
you are working on them. You'll perform your editing in **stable mode**, only
switching to development mode to test your changes.
To open a development mode window, use the "Application: Open Dev" command,
which is normally bound to `cmd-shift-o`. You can also run dev mode from the
command line with `atom --dev`.
To load your package in development mode, create a symlink to it in
`~/.atom/dev/packages`. This occurs automatically when you clone the package
with `apm develop`. You can also run `apm link --dev` and `apm unlink --dev`
from the package directory to create and remove dev-mode symlinks.
### Installing Dependencies
Finally, you need to install the cloned package's dependencies by running
`apm install` within the package directory. This step is also performed
automatically the first time you run `apm develop`, but you'll want to keep
dependencies up to date by running `apm update` after pulling upstream changes.
## Submitting Pull Requests
### Code Guidelines
* Include screenshots and animated GIFs in your pull request whenever possible.
* Follow the [CoffeeScript](#coffeescript-styleguide),
[JavaScript](https://github.com/styleguide/javascript),
and [CSS](https://github.com/styleguide/css) styleguides.
* Include thoughtfully-worded, well-structured
[Jasmine](http://pivotal.github.com/jasmine) specs.
* Document new code based on the
[Documentation Styleguide](#documentation-styleguide)
* End files with a newline.
* Place requires in the following order:
* Built in Node Modules (such as `path`)
* Built in Atom and Atom Shell Modules (such as `atom`, `shell`)
* Local Modules (using relative paths)
* Place class properties in the following order:
* Class methods and properties (methods starting with a `@`)
* Instance methods and properties
* Avoid platform-dependent code:
* Use `require('atom').fs.getHomeDirectory()` to get the home directory.
* Use `path.join()` to concatenate filenames.
* Use `os.tmpdir()` rather than `/tmp` when you need to reference the
temporary directory.
### Commit Message Guidelines
* Use the present tense ("Add feature" not "Added feature")
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
* Limit the first line to 72 characters or less
* Reference issues and pull requests liberally
* Consider starting the commit message with an applicable emoji:
* :lipstick: when improving the format/structure of the code
* :racehorse: when improving performance
* :non-potable_water: when plugging memory leaks
* :memo: when writing docs
* :bulb: Check out the [Emoji Cheat Sheet](http://www.emoji-cheat-sheet.com)
for more ideas.
## CoffeeScript Styleguide
* Use parentheses if it improves code clarity.
* Prefer alphabetic keywords to symbolic keywords:
* `a is b` instead of `a == b`
* Avoid spaces inside the curly-braces of hash literals:
* `{a: 1, b: 2}` instead of `{ a: 1, b: 2 }`
* Set parameter defaults without spaces around the equal sign:
* `clear = (count=1) ->` instead of `clear = (count = 1) ->`
* Include a single line of whitespace between methods.
## Documentation Styleguide
* Use [TomDoc](http://tomdoc.org).
* Use [Markdown](https://daringfireball.net/projects/markdown).
* Reference methods and classes in markdown with the custom `{}` notation:
* Reference classes with `{ClassName}`
* Reference instance methods with `{ClassName::methodName}`
* Reference class methods with `{ClassName.methodName}`
### Example
```coffee
# Public: Disable the package with the given name.
#
# This method emits multiple events:
#
# * `package-will-be-disabled` - before the package is disabled.
# * `package-disabled` - after the package is disabled.
#
# name - The {String} name of the package to disable.
# options - The {Object} with disable options (default: {}):
# :trackTime - `true` to track the amount of time disabling took.
# :ignoreErrors - `true` to catch and ignore errors thrown.
# callback - The {Function} to call after the package has been disabled.
#
# Returns `undefined`.
disablePackage: (name, options, callback) ->
```
+52
Ver Arquivo
@@ -0,0 +1,52 @@
## Converting a TextMate Bundle
This guide will show you how to convert a [TextMate][TextMate] bundle to an
Atom package.
Converting a TextMate bundle will allow you to use its editor preferences,
snippets, and colorization inside Atom.
### Install apm
The `apm` command line utility that ships with Atom supports converting
a TextMate bundle to an Atom package.
Check that you have `apm` installed by running the following command in your
terminal:
```sh
apm help init
```
You should see a message print out with details about the `apm init` command.
If you do not, launch Atom and run the _Atom > Install Shell Commmands_ menu
to install the `apm` and `atom` commands.
### Convert the Package
Let's convert the TextMate bundle for the [R][R] programming language. You can find other existing TextMate bundles [here][TextMateOrg].
You can convert the R bundle with the following command:
```sh
apm init --package ~/.atom/packages/language-r --convert https://github.com/textmate/r.tmbundle
```
You can now browse to `~/.atom/packages/language-r` to see the converted bundle.
:tada: Your new package is now ready to use, launch Atom and open a `.r` file in
the editor to see it in action!
### Further Reading
* Check out [Publishing a Package](publishing-a-package.html) for more information
on publishing the package you just created to [atom.io][atomio].
[atomio]: https://atom.io
[CSS]: http://en.wikipedia.org/wiki/Cascading_Style_Sheets
[LESS]: http://lesscss.org
[plist]: http://en.wikipedia.org/wiki/Property_list
[R]: http://en.wikipedia.org/wiki/R_(programming_language)
[TextMate]: http://macromates.com
[TextMateOrg]: https://github.com/textmate/r.tmbundle
+68
Ver Arquivo
@@ -0,0 +1,68 @@
## Converting a TextMate Theme
This guide will show you how to convert a [TextMate][TextMate] theme to an Atom
theme.
### Differences
TextMate themes use [plist][plist] files while Atom themes use [CSS][CSS] or
[LESS][LESS] to style the UI and syntax in the editor.
The utility that converts the theme first parses the theme's plist file and
then creates comparable CSS rules and properties that will style Atom similarly.
### Install apm
The `apm` command line utility that ships with Atom supports converting
a TextMate theme to an Atom theme.
Check that you have `apm` installed by running the following command in your
terminal:
```sh
apm help init
```
You should see a message print out with details about the `apm init` command.
If you do not, launch Atom and run the _Atom > Install Shell Commmands_ menu
to install the `apm` and `atom` commands.
You can now run `apm help init` to see all the options for initializing new
packages and themes.
### Convert the Theme
Download the theme you wish to convert, you can browse existing TextMate themes
[here][TextMateThemes].
Now, let's say you've downloaded the theme to `~/Downloads/MyTheme.tmTheme`,
you can convert the theme with the following command:
```sh
apm init --theme ~/.atom/packages/my-theme --convert ~/Downloads/MyTheme.tmTheme
```
You can browse to `~/.atom/packages/my-theme` to see the converted theme.
### Activate the Theme
Now that your theme is installed to `~/.atom/packages` you can enable it
by launching Atom and selecting the _Atom > Preferences..._ menu.
Select the _Themes_ link on the left side and choose _My Theme_ from the
__Syntax Theme__ dropdown menu to enable your new theme.
:tada: Your theme is now enabled, open an editor to see it in action!
### Further Reading
* Check out [Publishing a Package](publishing-a-package.html) for more information
on publishing the theme you just created to [atom.io][atomio].
[atomio]: https://atom.io
[CSS]: http://en.wikipedia.org/wiki/Cascading_Style_Sheets
[LESS]: http://lesscss.org
[plist]: http://en.wikipedia.org/wiki/Property_list
[TextMate]: http://macromates.com
[TextMateThemes]: http://wiki.macromates.com/Themes/UserSubmittedThemes
+20 -36
Ver Arquivo
@@ -24,6 +24,9 @@ Not every package will have (or need) all of these directories.
We have [a tutorial on creating your first package][first-package].
There are also guides for converting [TextMate bundles][convert-bundle] and
[TextMate themes][convert-theme] so they work in Atom.
## package.json
Similar to [npm packages][npm], Atom packages contain a _package.json_ file
@@ -44,13 +47,13 @@ key mappings your package needs to load. If not specified, mappings in the
_keymaps_ directory are added alphabetically.
- `menus`(**Optional**): an Array of Strings identifying the order of
the menu mappings your package needs to load. If not specified, mappings
in the _keymap_ directory are added alphabetically.
in the _menus_ directory are added alphabetically.
- `snippets` (**Optional**): an Array of Strings identifying the order of the
snippets your package needs to load. If not specified, snippets in the
_snippets_ directory are added alphabetically.
- `activationEvents` (**Optional**): an Array of Strings identifying events that
trigger your package's activation. You can delay the loading of your package
until one of these events is trigged.
until one of these events is triggered.
## Source Code
@@ -127,7 +130,7 @@ Ideally, you won't need much in the way of styling. We've provided a standard
set of components which define both the colors and UI elements for any package
that fits into Atom seamlessly. You can view all of Atom's UI components by opening
the styleguide: open the command palette (`cmd-shift-P`) and search for _styleguide_,
or just type `cmd-ctrl-G`.
or just type `cmd-ctrl-shift-G`.
If you _do_ need special styling, try to keep only structural styles in the package
stylesheets. If you _must_ specify colors and sizing, these should be taken from
@@ -154,7 +157,7 @@ loaded in alphabetical order. An optional `keymaps` array in your _package.json_
can specify which keymaps to load and in what order.
Keybindings are executed by determining which element the keypress occured on. In
Keybindings are executed by determining which element the keypress occurred on. In
the example above, `changer:magic` command is executed when pressing `ctrl-V` on
the `.tree-view-scroller` element.
@@ -172,7 +175,7 @@ specify which menus to load and in what order.
It's recommended that you create an application menu item for common actions
with your package that aren't tied to a specific element:
```coffee-script
```coffeescript
'menu': [
{
'label': 'Packages'
@@ -202,7 +205,7 @@ by other packages in the order which they were loaded.
It's recommended to specify a context menu item for commands that are linked to
specific parts of the interface, like adding a file in the tree-view:
```coffee-script
```coffeescript
'context-menu':
'.tree-view':
'Add file': 'tree-view:add-file'
@@ -322,27 +325,20 @@ Your package **should** have tests, and if they're placed in the _spec_
directory, they can be run by Atom.
Under the hood, [Jasmine] executes your tests, so you can assume that any DSL
available there is available to your package as well.
**FIXME: Explain the following**
* jasmine
* jasmine-focused
* `spec/fixtures` and global.project
* setTimeout
* whatever else is different in spec-helper
available there is also available to your package.
## Running Tests
TODO: Probably use the menu option now.
Once you've got your test suite written, you can run it by pressing
`cmd-alt-ctrl-p` or via the _Developer > Run Package Specs_ menu.
Once you've got your test suite written, the recommended way to run it is `apm
test`. `apm test` prints its output to the console and returns the proper status
code depending on whether tests passed or failed.
You can also use the `apm test` command to run them from the command line. It
prints the test output and results to the console and returns the proper status
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
@@ -360,36 +356,24 @@ registry.
Run `apm help publish` to see all the available options and `apm help` to see
all the other available commands.
## Included Libraries
FIXME: Describe `require 'atom'
In addition to core node.js modules, all packages can `require` the following
popular libraries into their packages:
* [SpacePen] (as `require 'space-pen'`)
* [jQuery] (as `require 'jquery'`)
* [Underscore] (as `require 'underscore'`)
Additional libraries can be found by browsing Atom's *node_modules* folder.
[file-tree]: https://github.com/atom/tree-view
[status-bar]: https://github.com/atom/status-bar
[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]: internals/keymaps.md
[keymaps]: advanced/keymaps.md
[theme-variables]: theme-variables.md
[tm-tokens]: http://manual.macromates.com/en/language_grammars.html
[spacepen]: https://github.com/nathansobo/space-pen
[path]: http://nodejs.org/docs/latest/api/path.html
[jquery]: http://jquery.com/
[underscore]: http://underscorejs.org/
[jasmine]: https://github.com/pivotal/jasmine
[jasmine]: http://jasmine.github.io
[cson]: https://github.com/atom/season
[less]: http://lesscss.org
[ui-variables]: https://github.com/atom/atom-dark-ui/blob/master/stylesheets/ui-variables.less
[first-package]: your-first-package.html
[convert-bundle]: converting-a-text-mate-bundle.html
[convert-theme]: converting-a-text-mate-theme.html
+65 -55
Ver Arquivo
@@ -1,124 +1,134 @@
# Creating a Theme
Atom's interface is rendered using HTML, and it's styled via [LESS] (a superset
of CSS). Don't worry if you haven't heard of LESS before; it's just like CSS, but
with a few handy extensions.
of CSS). Don't worry if you haven't heard of LESS before; it's just like CSS,
but with a few handy extensions.
Since CSS is the basis of the theming system, we can load multiple themes within
Atom, and the themes behave just as they would on a website. Themes loaded first
are overridden by themes which are loaded later. The order of theme loading is
controlled within the Settings/Themes pane.
Atom supports two types of themes: _UI_ and _syntax_. UI themes style
elements such as the tree view, the tabs, drop-down lists, and the status bar.
Syntax themes style the code inside the editor.
This flexibility is helpful for users that prefer a light interface with a dark
syntax theme. Atom currently has only interface and syntax themes, but it is
possible to create a theme to style something specific &mdash; say, changing
the colors in the tree view or creating a language specific syntax theme.
Themes can be installed and changed from the settings view which you can open
by selecting the _Atom > Preferences..._ menu and navigating to the _Themes_
section on the left hand side.
## Getting Started
Themes are pretty straight forward but it's still helpful to be familiar with
Themes are pretty straightforward but it's still helpful to be familiar with
a few things before starting:
* LESS is a superset of CSS, but it has some really handy features like
variables. If you aren't familiar with its syntax take a few minutes
variables. If you aren't familiar with its syntax, take a few minutes
to [familiarize yourself][less-tutorial].
* You may also want to review the concept of a _[package.json]_, too. This file
is used to help distribute your theme to Atom users.
There are two types of themes you can create: syntax themes and interface themes.
The differences between them are simply a matter of what they target and what
they provide. Syntax themes focus on the entire editor pane, while interface themes
target elements which are outside of the editor.
is used to help distribute your theme to Atom users.
* Your theme's _package.json_ must contain a `"theme"` key with a value
of `"ui"` or `"syntax"` for Atom to recognize and load it as a theme.
* You can find existing themes to install or fork on [atom.io](atomio).
## Creating a Syntax Theme
Let's create your first theme.
To get started, hit `cmd-shift-P`, and start typing "Generate Theme" to generate
a package. Select "Generate Theme," and you'll be asked for a theme name. Let's
call ours _motif_.
To get started, hit `cmd-shift-P`, and start typing "Generate Syntax Theme" to
generate a new theme package. Select "Generate Syntax Theme," and you'll be
asked for the path where your theme will be created. Let's call ours
_motif-syntax_. __Tip:__ syntax themes should end with _-syntax_.
Atom will pop open a new window, showing the _motif_ theme, with a default set of
folders and files created for us. If you hit `cmd-,` and navigate to the Themes
menu option, you'll see the `motif` theme already available. Drag it over from
"Enabled Themes" to "Available Themes."
Atom will pop open a new window, showing the _motif-syntax_ theme, with a
default set of folders and files created for us. If you open the settings view
(`cmd-,`) and navigate to the _Themes_ section on the left, you'll see the
_Motif_ theme listed in the _Syntax Theme_ drop-down. Select it from the menu to
activate it, now when you open an editor you should see that your new
_motif-syntax_ theme in action.
Open up _stylesheets/colors.less_ to change the various colors variables which
have been already been defined. For example, turn `@red` into `#f4c2c1`.
Then, open _stylesheets/base.less_, and modify the various syntax CSS selectors
that have been already been defined. Each of these selectors represents a different
part of the Atom window. Themes that don't need to modify a particular region
can simply remove the selectors they don't need.
Then open _stylesheets/base.less_ and modify the various selectors that have
been already been defined. These selectors style different parts of code in the
editor such as comments, strings and the line numbers in the gutter.
As an example, let's make the `.gutter` `background-color` into `@red`.
Reload Atom by hitting `cmd-r` to see the changes you made reflected in your Atom
window. Pretty neat!
Reload Atom by pressing `cmd-alt-ctrl-l` to see the changes you made reflected
in your Atom window. Pretty neat!
__Tip:__ You can avoid reloading to see changes you make by opening an atom
window in dev mode. To open a Dev Mode Atom window run `atom --dev .` in the
terminal, use `cmd-shift-o` or use the _View > Developer > Open in Dev Mode_
menu. When you edit your theme, changes will instantly be reflected!
## Creating an Interface Theme
Interface themes **must** provide a `ui-variables.less` file which contains all
Interface themes **must** provide a `ui-variables.less` file which contains all
of the variables provided by the [core themes][ui-variables].
To create an interface UI theme, do the following:
1. Fork one of the following repos
1. [atom-dark-ui]
1. [atom-light-ui]
1. Open a terminal in the forked theme's directory
1. Open your new theme in a Dev Mode Atom window (run `atom -d .` in the terminal or use the __View > Developer > Open in Dev Mode__ menu)
1. Change the name of the theme in the theme's `package.json` file
1. Run `apm link` to tell Atom about your new theme
1. Reload Atom (`cmd-r`)
1. Enable the theme via the themes panel in settings
1. Make changes! Since you opened the theme in a Dev Mode window, changes will
1. Fork one of the following repositories:
* [atom-dark-ui]
* [atom-light-ui]
2. Clone the forked repository to the local filesystem
3. Open a terminal in the forked theme's directory
4. Open your new theme in a Dev Mode Atom window run `atom --dev .` in the
terminal or use the _View > Developer > Open in Dev Mode_ menu
5. Change the name of the theme in the theme's `package.json` file
6. Name your theme end with a `-ui`. i.e. `super-white-ui`
7. Run `apm link` to symlink your repository to `~/.atom/packages`
8. Reload Atom using `cmd-alt-ctrl-L`
9. Enable the theme via _UI Theme_ drop-down in the _Themes_ section of the
settings view
10. Make changes! Since you opened the theme in a Dev Mode window, changes will
be instantly reflected in the editor without having to reload.
## Development workflow
There are a few of tools to help make theme development faster.
There are a few of tools to help make theme development faster and easier.
### Live Reload
Reloading by hitting `cmd-r` after you make changes to your theme is less than ideal.
Atom supports [live updating][livereload] of styles on Dev Mode Atom windows.
Reloading by hitting `cmd-alt-ctrl-L` after you make changes to your theme is
less than ideal. Atom supports [live updating][livereload] of styles on Dev Mode
Atom windows.
To enable a Dev Mode window:
1. Open your theme directory in a dev window by either going to the
__View > Developer > Open in Dev Mode__ menu or by hitting the `cmd-shift-o`
shortcut
1. Make a change to your theme file and save it. Your change should be
immediately applied!
__View > Developer > Open in Dev Mode__ menu or by hitting the `cmd-shift-o`
shortcut
2. Make a change to your theme file and save it. Your change should be
immediately applied!
If you'd like to reload all the styles at any time, you can use the shortcut
`cmd-ctrl-R`.
`cmd-ctrl-shift-r`.
### Developer Tools
Atom is based on the Chrome browser, and supports Chrome's Developer Tools. You
can open them by selecting the __View > Toggle Developer Tools__ menu, or by using
the `cmd-option-i` shortcut.
can open them by selecting the _View > Toggle Developer Tools_ menu, or by
using the `cmd-alt-i` shortcut.
The dev tools allow you to inspect elements and take a look at their CSS
properties.
![devtools-img]
Check out Google's [extensive tutorial][devtools-tutorial] for a short introduction.
Check out Google's [extensive tutorial][devtools-tutorial] for a short
introduction.
### Atom Styleguide
If you are creating an interface theme, you'll want a way to see how your theme
changes affect all the components in the system. The [styleguide] is a page with
every component Atom supports rendered.
changes affect all the components in the system. The [styleguide] is a page that
renders every component Atom supports.
To open the styleguide, open the command palette (`cmd-shift-P`) and search for
_styleguide_, or use the shortcut `cmd-ctrl-shift-g`.
![styleguide-img]
[atomio]: http://atom.io/packages
[less]: http://lesscss.org/
[git]: http://git-scm.com/
[atom]: https://atom.io/
+85 -41
Ver Arquivo
@@ -1,34 +1,57 @@
# Customizing Atom
To change a setting, configure a theme, or install a package just open the
Settings pane in the current window by pressing `cmd+,`.
Settings view in the current window by pressing `cmd-,`.
## Changing The Theme
Because Atom themes are based on CSS, it's possible (and encouraged) to have
multiple themes active at the same time. Atom comes with both light and dark
interface themes as well as several syntax themes (you can also [create your
own][create-theme]).
Atom comes with both light and dark UI themes as well as several syntax themes.
You are also encouraged to [create or fork][create-theme] your own theme.
To change the active themes just open the Settings pane (`cmd-,`) and select the
`Themes` tab. You can install non-bundled themes by going to the `Available
Themes` section on the `Packages` tab within the Settings panel.
To change the active theme just open the Settings view (`cmd-,`) and select the
`Themes` section from the left hand side. You will see a drop-down menu to
change the active _Syntax_ and _UI_ themes.
You can also install more themes from here by browsing the featured themes or
searching for a specific theme.
## Installing Packages
You can install non-bundled packages by going to the `Available Packages`
section on the `Packages` tab within the Settings panel (`cmd-,`).
You can install non-bundled packages by going to the `Packages` section on left
hand side of the Settings view (`cmd-,`). You will see several featured packages
and you can also search for packages from here. The packages listed here have
been published to [atom.io](http://atom.io/packages) which is the official
registry for Atom packages.
You can also install packages from the command line using the
[apm](https://github.com/atom/apm) command:
You can also install packages from the command line using `apm`.
`apm install <package_name>` to install the latest version.
Check that you have `apm` installed by running the following command in your
terminal:
`apm install <package_name>@<package_version>` to install a specific version.
```sh
apm help install
```
You should see a message print out with details about the `apm install` command.
If you do not, launch Atom and run the _Atom > Install Shell Commmands_ menu
to install the `apm` and `atom` commands.
You can also install packages by using the `apm install` command:
* `apm install <package_name>` to install the latest version.
* `apm install <package_name>@<package_version>` to install a specific version.
For example `apm install emmet@0.1.5` installs the `0.1.5` release of the
[Emmet](https://github.com/atom/emmet) package into `~/.atom/packages`.
You can also use `apm` to find new packages to install:
* `apm search coffee` to search for CoffeeScript packages.
* `apm view emmet` to see more information about a specific package.
## Customizing Key Bindings
Atom keymaps work similarly to stylesheets. Just as stylesheets use selectors
@@ -36,13 +59,12 @@ to apply styles to elements, Atom keymaps use selectors to associate keystrokes
with events in specific contexts. Here's a small example, excerpted from Atom's
built-in keymaps:
```coffee-script
```coffee
'.editor':
'enter': 'editor:newline'
'body':
'ctrl-P': 'core:move-up'
'ctrl-p': 'core:move-down'
'.mini.editor input':
'enter': 'core:confirm'
```
This keymap defines the meaning of `enter` in two different contexts. In a
@@ -55,6 +77,8 @@ By default, `~/.atom/keymap.cson` is loaded when Atom is started. It will always
be loaded last, giving you the chance to override bindings that are defined by
Atom's core keymaps or third-party packages.
You can open this file in an editor from the _Atom > Open Your Keymap_ menu.
You'll want to know all the commands available to you. Open the Settings panel
(`cmd-,`) and select the _Keybindings_ tab. It will show you all the keybindings
currently in use.
@@ -62,18 +86,20 @@ 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):
```coffeescript
core:
excludeVcsIgnoredPaths: true
editor:
fontSize: 18
```coffee
'core':
'excludeVcsIgnoredPaths': true
'editor':
'fontSize': 18
```
The configuration itself is grouped by the package name or one of the two core
namespaces: `core` and `editor`.
You can open this file in an editor from the _Atom > Open Your Config_ menu.
### Configuration Key Reference
- `core`
@@ -84,7 +110,6 @@ namespaces: `core` and `editor`.
- `themes`: An array of theme names to load, in cascading order
- `editor`
- `autoIndent`: Enable/disable basic auto-indent (defaults to `true`)
- `autoIndentOnPaste`: Enable/disable auto-indented pasted text (defaults to `false`)
- `nonWordCharacters`: A string of non-word characters to define word boundaries
- `fontSize`: The editor font size
- `fontFamily`: The editor font family
@@ -108,34 +133,53 @@ namespaces: `core` and `editor`.
- `removeTrailingWhitespace`: Enable/disable striping of whitespace at the end of lines (defaults to `true`)
- `wrap-guide`
- `columns`: Array of hashes with a `pattern` and `column` key to match the
the path of the current editor to a column position.
the path of the current editor to a column position.
### Quick Personal Hacks
### user.coffee
### init.coffee
When Atom finishes loading, it will evaluate _user.coffee_ in your _~/.atom_
directory, giving you a chance to run arbitrary personal CoffeeScript code to
When Atom finishes loading, it will evaluate _init.coffee_ in your _~/.atom_
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][create-a-package].
If customizations become extensive, consider [creating a package][creating-a-package].
### user.less
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
If you want to apply quick-and-dirty personal styling changes without creating
an entire theme that you intend to distribute, you can add styles to
_user.less_ in your _~/.atom_ directory.
an entire theme that you intend to publish, you can add styles to the
_styles.less_ file in your _~/.atom_ directory.
For example, to change the color of the highlighted line number for the line
that contains the cursor, you could add the following style to _user.less_:
You can open this file in an editor from the _Atom > Open Your Stylesheet_ menu.
For example, to change the color of the cursor, you could add the following
rule to your _~/.atom/styles.less_ file:
```less
@highlight-color: pink;
.editor .line-number.cursor-line {
color: @highlight-color;
.editor .cursor {
border-color: pink;
}
```
[create-a-package]: creating-packages.md
Unfamiliar with LESS? Read more about it [here][LESS].
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/
+44 -36
Ver Arquivo
@@ -19,35 +19,30 @@ bindings][key-bindings] section.
### Working With Files
Atom windows are scoped to the directory they're opened from. If you launch Atom
from the command line everything will be relative to the current directory. This
means that the tree view on the left will only show files contained within that
directory.
This can be a useful way to organize multiple projects, as each project will be
contained within its own window.
Atom windows are scoped to a single directory on disk. If you launch Atom from
the command line via the `atom` command and don't specify a path, Atom opens a
window for the current working directory. The current window's directory will be
visible as the root of the tree view on the left, and also serve as the context
for all file-related operations.
#### Finding Files
The fastest way to find a file is to use the fuzzy finder. Press `cmd-t` and
begin typing the name of the file you're looking for. If you are looking for a
file that is already open press `cmd-b` to bring up a searchable list of open
files.
files. If you are using Git you can use `cmd-shift-b` to search the list of
files modified and untracked in your project's repository.
You can also use the tree view to navigate to a file. To open or move focus to
the tree view, press `cmd-\`. You can then navigate to a file using the arrow
keys and select it with `return`.
You can also use the tree view to navigate to a file. To open and focus the
the tree view, press `ctrl-0`. The tree view can be toggled open and closed with
`cmd-\`.
#### Adding, Moving, Deleting Files
Currently, all file modification is performed via the tree view. To add a file,
select a directory in the tree view and press `a`. Then type the name of the
file. Any intermediate directories you type will be created automatically if
needed.
To move or rename a file or directory, select it in the tree view and press `m`.
To delete a file, select it in the tree view and press `delete`.
You can add, move, and delete files and folders by right-clicking them in the
tree view and selecting the desired operation from the context menu. You can
also perform these operations from the keyboard by selecting a file or folder
and using `a` to add, `m` to move, and `delete` to delete.
### Searching
@@ -58,37 +53,50 @@ To search within a buffer use `cmd-f`. To search the entire project use
#### Navigating By Symbols
If you want to jump to a method press `cmd-r`. It opens a list of all symbols
in the current file.
To jump to a symbol such as a method definition, press `cmd-r`. This opens a
list of all symbols in the current file, which you can fuzzy filter similarly to
`cmd-t`.
To search for symbols across your project use `cmd-shift-r`, but you'll need to
make sure you have a ctags installed and a tags file generated for your project.
Also, if you're editing CoffeeScript, it's a good idea to update your `~/.ctags`
file to understand the language. Here is [a good example][ctags].
To search for symbols across your project, use `cmd-shift-r`. First you'll need
to make sure you have `tags` (or `TAGS`) file generated for your project.
This can be done by installing [ctags](http://ctags.sourceforge.net/) and
running a command such as `ctags -R src/` from the command line in your
project's root directory. Using [Homebrew](http://brew.sh/)? Just run
`brew install ctags`.
You can customize how tags are generated by creating your own `.ctags` file
in your home directory (`~/.ctags`). Here is [a good example][ctags] to start
from.
### Split Panes
You can split any editor pane horizontally or vertically by using `cmd-k right` or
`cmd-k down`. Once you have a split pane, you can move focus between them with
`cmd-k cmd-right` or `cmd-k cmd-down`. To close a pane, close all tabs inside it.
You can split any editor pane horizontally or vertically by using `cmd-k right`
or `cmd-k down`. Once you have a split pane, you can move focus between them
with `cmd-k cmd-right` or `cmd-k cmd-down`. To close a pane, close all its
editors with `cmd-w`, then press `cmd-w` one more time to close the pane. You
can configure panes to auto-close when empty in the Settings view.
### Folding
You can fold everything with `alt-cmd-{` and unfold everything with
`alt-cmd-}`. Or, you can fold / unfold by a single level with `alt-cmd-[` and
`alt-cmd-]`.
You can fold blocks of code by clicking the arrows that appear when you hover
your mouse cursor over the gutter. You can also fold and unfold from the
keyboard with `alt-cmd-[` and `alt-cmd-]`. To fold everything, use
`alt-cmd-shift-{` and to unfold everything use `alt-cmd-shift-}`. You can also
fold at a specific indentation level with `cmd-k cmd-N` where N is the
indentation depth.
### Soft-Wrap
If you want to toggle soft wrap, trigger the command from the command palette.
Press `cmd-shift-P` to open the palette, then type "wrap" to find the correct
command.
command. By default, lines will wrap based on the size of the editor. If you
prefer to wrap at a specific line length, toggle "Wrap at preferred line length"
in preferences.
## Configuration
Press `cmd-,` to display the a settings pane. This serves as the primary
interface for adjusting config settings, installing packages and changing
themes.
Press `cmd-,` to open the Settings view. This is the place to change settings,
install packages, and change the theme.
For more advanced configuration see the [customization guide][customization].
@@ -98,4 +106,4 @@ For more advanced configuration see the [customization guide][customization].
[customization]: customizing-atom.md
[key-bindings]: customizing-atom.md#customizing-key-bindings
[command palette]: https://f.cloud.github.com/assets/1424/1091618/ee7c3554-166a-11e3-9955-aaa61bb5509c.png
[ctags]: https://github.com/kevinsawicki/dotfiles/blob/master/.ctags
[ctags]: https://github.com/atom/symbols-view/blob/master/lib/.ctags
+8 -4
Ver Arquivo
@@ -4,10 +4,14 @@
* [Customizing Atom](customizing-atom.md)
* [Creating a Package](creating-a-package.md)
* [Creating a Theme](creating-a-theme.md)
* [Publishing a Package](publishing-a-package.md)
* [Converting a TextMate Bundle](converting-a-text-mate-bundle.md)
* [Converting a TextMate Theme](converting-a-text-mate-theme.md)
* [Contributing](contributing.md)
### Advanced Topics
* [Configuration](internals/configuration.md)
* [Keymaps](internals/keymaps.md)
* [Serialization](internals/serialization.md)
* [View System](internals/view-system.md)
* [Configuration](advanced/configuration.md)
* [Keymaps](advanced/keymaps.md)
* [Serialization](advanced/serialization.md)
* [View System](advanced/view-system.md)
-61
Ver Arquivo
@@ -1,61 +0,0 @@
## Configuration API
### Reading Config Settings
If you are writing a package that you want to make configurable, you'll need to
read config settings. You can read a value from `config` with `config.get`:
```coffeescript
# read a value with `config.get`
@showInvisibles() if config.get "edtior.showInvisibles"
```
Or you can use `observeConfig` to track changes from a view object.
```coffeescript
class MyView extends View
initialize: ->
@observeConfig 'editor.fontSize', () =>
@adjustFontSize()
```
The `observeConfig` method will call the given callback immediately with the
current value for the specified key path, and it will also call it in the future
whenever the value of that key path changes.
Subscriptions made with `observeConfig` are automatically canceled when the
view is removed. You can cancel config subscriptions manually via the
`unobserveConfig` method.
```coffeescript
view1.unobserveConfig() # unobserve all properties
```
You can add the ability to observe config values to non-view classes by
extending their prototype with the `ConfigObserver` mixin:
```coffeescript
ConfigObserver = require 'config-observer'
_.extend MyClass.prototype, ConfigObserver
```
### Writing Config Settings
As discussed above, the config database is automatically populated from
`config.cson` when Atom is started, but you can programmatically write to it in
the following way:
```coffeescript
# basic key update
config.set("core.showInvisibles", true)
config.pushAtKeyPath("core.disabledPackages", "wrap-guide")
```
You can also use `setDefaults`, which will assign default values for keys that
are always overridden by values assigned with `set`. Defaults are not written out
to the the `config.json` file to prevent it from becoming cluttered.
```coffeescript
config.setDefaults("editor", fontSize: 18, showInvisibles: true)
```
-69
Ver Arquivo
@@ -1,69 +0,0 @@
## Keymaps In-Depth
### Structure of a Keymap File
Keymap files are encoded as JSON or CSON files containing nested hashes. The
top-level keys of a keymap are **CSS 3 selectors**, which specify a particular
context in Atom's interface. Common selectors are `.editor`, which scopes
bindings to just work when an editor is focused, and `body`, which scopes
bindings globally.
Beneath the selectors are hashes mapping **keystroke patterns** to
**semantic events**. A keystroke pattern looks like the following examples.
Note that the last example describes multiple keystrokes in succession:
- `p`
- `2`
- `ctrl-p`
- `ctrl-alt-cmd-p`
- `tab`
- `escape`
- `enter`
- `ctrl-w w`
A semantic event is the name of the custom event that will be triggered on the
target of the keydown event when a key binding matches. You can use the command
palette (bound to `cmd-shift-P`), to get a list of relevant events and their bindings
in any focused context in Atom.
### Rules for Mapping A Keydown Event to A Semantic Event
A keymap's job is to translate a physical keystroke event (like `cmd-D`) into a
semantic event (like `editor:duplicate-line`). Whenever a keydown event occurs
on a focused element, it bubbles up the DOM as usual. As soon as an element on
the bubble path matches a key binding for the keystroke, the binding's semantic
event is triggered on the original target of the keydown event. Just as with
CSS, if multiple selectors match an element, the most specific selector is
favored. If two selectors have the same specificity, the selector that occurs
latest in the cascade is favored.
Currently, there's no way to specify selector ordering within a single keymap,
because JSON hashes do not preserve order. Rather than making the format more
awkward in order to preserve order, we've opted to handle cases where order is
critical by breaking the keymap into two separate files, such as
`snippets-1.cson` and `snippets-2.cson`.
### Overloading Key Bindings
Occasionally, it makes sense to layer multiple actions on top of the same key
binding. An example of this is the snippets package. You expand a snippet by
pressing `tab` immediately following a snippet's prefix. But if the cursor is
not following a valid snippet prefix, then we want tab to perform its normal
action (probably inserting a tab character or the appropriate number of spaces).
To achieve this, the snippets package makes use of the `abortKeyBinding` method
on the event object that's triggered by the binding for `tab`.
```coffee-script
# pseudo-code
editor.command 'snippets:expand', (e) =>
if @cursorFollowsValidPrefix()
@expandSnippet()
else
e.abortKeyBinding()
```
When the event handler observes that the cursor does not follow a valid prefix,
it calls `e.abortKeyBinding()`, which tells the keymap system to continue
searching up the cascade for another matching binding. In this case, the default
implementation of `tab` ends up getting triggered.
-63
Ver Arquivo
@@ -1,63 +0,0 @@
## Atom Documentation Format
This document describes our documentation format, which is markdown with
a few rules.
### Philosophy
1. Method and argument names **should** clearly communicate its use.
1. Use documentation to enhance and not correct method/argument names.
#### Basic
In some cases all that's required is a single line. **Do not** feel
obligated to write more because we have a format.
```markdown
# Private: Returns the number of pixels from the top of the screen.
```
* **Each method should declare whether it's public or private by using `Public:`
or `Private:`** prefix.
* Following the colon, there should be a short description (that isn't redundant with the
method name).
* Documentation should be hard wrapped to 80 columns.
### Public vs Private
If a method is public it can be used by other classes (and possibly by
the public API). The appropriate steps should be taken to minimize the impact
when changing public methods. In some cases that might mean adding an
appropriate release note. In other cases it might mean doing the legwork to
ensure all affected packages are updated.
#### Complex
For complex methods it's necessary to explain exactly what arguments
are required and how different inputs effect the operation of the
function.
The idea is to communicate things that the API user might not know about,
so repeating information that can be gleaned from the method or argument names
is not useful.
```markdown
# Private: Determine the accelerator for a given command.
#
# * command:
# The name of the command.
# * keystrokesByCommand:
# An {Object} whose keys are commands and the values are Arrays containing
# the keystrokes.
# * options:
# + accelerators:
# Boolean to determine whether accelerators should be shown.
#
# Returns a String containing the keystroke in a format that can be interpreted
# by atom shell to provide nice icons where available.
#
# Raises an Exception if no window is available.
```
* Use curly brackets `{}` to provide links to other classes.
* Use `+` for the options list.
-70
Ver Arquivo
@@ -1,70 +0,0 @@
**Polish the user experience**
First and foremost, Atom is a **product**. Atom needs to feel familiar and
inviting. This includes a solid introductory experience and parity with the most
important features of Sublime Text.
* First launch UI and flow (actions below should be easily discoverable)
* Create a new file
* Open a project and edit an existing file
* Install a package
* Change settings (adjust theme, change key bindings, set config options)
* How to use command P
* Use collaboration internally
* How and where to edit keyBinding should be obvious to new users
* Finish find and replace in buffer/project
* Atom should start < 300ms
* Match Sublime's multiple selection functionality (#523)
* Fix softwrap bugs
* Menus & Context menus
* Track usage/engagement of our users (make this opted in?)
* Windows support
* Reliably and securely auto-update and list what's new
* Secure access to the keychain (don't give every package access to the keychain)
* Secure access to GitHub (each package can ask to have it's own oauth token)
* Don't crash when opening/editing large (> 10Mb) files
* Send js and native crash reports to a remote server
**Lay solid groundwork for a package and theme ecosystem**
Extensibility is one of Atom's key value propositions, so a smooth experience
for creating and maintaining packages is just as important as the user
experience. The package development, dependency and publishing workflow needs to
be solid. We also want to have a mechanism for clearly communicating with
package authors about breaking API changes.
* Finish APM backend (integrate with GitHub Releases)
* Streamline Dev workflow
* `apm create` - create package scaffolding
* `apm test` - so users can run focused package tests
* `apm publish` - should integrate release best practices (ie npm version)
* Determine which classes and methods should be included in the public API
* Users can find/install/update/fork existing packages and themes
**Tighten up the view layer**
Our current approach to the view layer need some improvement. We want to
actively promote the use of the M-V-VM design pattern, provide some declarative
event binding mechanisms in the view layer, and improve the performance of the
typical package specs. We don't want the current approach to be used as an
example in a bunch of new packages, so it's important to improve it now.
* Add marker view API
**Get atom.io online with some exciting articles and documentation**
We'd love to send our private alpha candidates to a nice site with information
about what Atom is, the philosophies and technologies behind it, and guidance
for how to get started.
* Design and create www.atom.io
* Guides
* Theme & Package creation guide
* Full API per release tag
* Changelog per release
* Explanation of features
* Explain Semver and general plans for the future (reassure developers we care about them)
* General Values/Goals
* Make docs accessible from Atom
* Community/contribution guidelines
* Is all communication to be done through issues?
* When should you publish a plugin?
* Do we need to vet plugins from a security perspective?
-16
Ver Arquivo
@@ -1,16 +0,0 @@
## Proposed Timeline
1. **October 30st** - Internal launch - persuade as many githubbers to switch as
possible.
1. Triage bugs and identify what needs to be fixed before private alpha. Maybe
talk to @chrissiebrodigan about doing a UX study.
1. **November 22st** - Private alpha launch
1. Trickle out invites as people ask/we need more testers.
1. If our usage metrics/engagement metrics decrease, stop, identify the issue
and fix it before continuing.
1. Launch
+97
Ver Arquivo
@@ -0,0 +1,97 @@
## Publishing a Package
This guide will show you how to publish a package or theme to the
[atom.io][atomio] package registry.
Publishing a package allows other people to install it and use it in Atom. It
is a great way to share what you've made and get feedback and contributions from
others.
This guide assumes your package's name is `my-package` and but you should pick a
better name.
### Install apm
The `apm` command line utility that ships with Atom supports publishing packages
to the atom.io registry.
Check that you have `apm` installed by running the following command in your
terminal:
```sh
apm help publish
```
You should see a message print out with details about the `apm publish` command.
If you do not, launch Atom and run the _Atom > Install Shell Commmands_ menu
to install the `apm` and `atom` commands.
### Prepare Your Package
If you've followed the steps in the [your first package][your-first-package]
doc then you should be ready to publish and you can skip to the next step.
If not, there are a few things you should check before publishing:
* Your *package.json* file has `name`, `description`, and `repository` fields.
* Your *package.json* file has a `version` field with a value of `"0.0.0"`.
* Your *package.json* file has an `engines` field that contains an entry
for Atom such as: `"engines": {"atom": ">=0.50.0"}`.
* Your package has a `README.md` file at the root.
* Your package is in a Git repository that has been pushed to
[GitHub][github]. Follow [this guide][repo-guide] if your package isn't
already on GitHub.
### Publish Your Package
Before you publish a package it is a good idea to check ahead of time if
a package with the same name has already been published to atom.io. You can do
that by visiting `http://atom.io/packages/my-package` to see if the package
already exists. If it does, update your package's name to something that is
available before proceeding.
Now let's review what the `apm publish` command does:
1. Registers the package name on atom.io if it is being published for the
first time.
2. Updates the `version` field in the *package.json* file and commits it.
3. Creates a new [Git tag][git-tag] for the version being published.
4. Pushes the tag and current branch up to GitHub.
5. Updates atom.io with the new version being published.
Now run the following commands to publish your package:
```sh
cd ~/github/my-package
apm publish minor
```
If this is the first package you are publishing, the `apm publish` command may
prompt you for your GitHub username and password. This is required to publish
and you only need to enter this information the first time you publish. The
credentials are stored securely in your [keychain][keychain] once you login.
:tada: Your package is now published and available on atom.io. Head on over to
`http://atom.io/packages/my-package` to see your package's page.
The `minor` option to the publish command tells apm to increment the second
digit of the version before publishing so the published version will be `0.1.0`
and the Git tag created will be `v0.1.0`.
In the future you can run `apm publish major` to publish the `1.0.0` version but
since this was the first version being published it is a good idead to start
with a minor release.
### Further Reading
* Check out [semantic versioning][semver] to learn more about versioning your
package releases.
[atomio]: https://atom.io
[github]: https://github.com
[git-tag]: http://git-scm.com/book/en/Git-Basics-Tagging
[keychain]: http://en.wikipedia.org/wiki/Keychain_(Apple)
[repo-guide]: http://guides.github.com/overviews/desktop
[semver]: http://semver.org
[your-first-package]: your-first-package.html
-39
Ver Arquivo
@@ -1,39 +0,0 @@
# Setting up Travis CI
Packages under the [atom org][atom-org] should use [Travis CI][travis-ci] for
builds.
Currently we have a [Travis Pro][travis-pro] account since the repositories
are private. This process will be simpler and have fewer steps once the
package repos are made public.
Each package builds using the [build-package][build-package] script, any
changes to the build should be made in that script and will affect all
package builds immediately.
Each package builds against the latest successful build of atom@master. The
master builds are stored in the [atom-master-builds][atom-master-builds] repo
as releases named by the SHA-1 built.
## Configuring a package
* Run `cd ~/github/my-package` to navigate to the package repo locally
* Run `apm test` to verify that the package currently builds via [apm][apm]
* Add the package repo to the [Travis CI team][travis-ci-team]
* Run `gem install travis` to install the [travis gem][travis-gem]
* Run `travis login --pro` and log in using the [atom-build][atom-build] user
and the password from the *Shared-Developers* folder in LastPass
* Run `apm ci` to add a `.travis.yml` file to the repo and to configure Travis
* Log into [Travis][travis-ci] as the `atom-build` user and you should now see
the package listed and building
[apm]: https://github.com/atom/apm
[build-package]: https://github.com/atom/apm/blob/master/script/build-package
[atom-build]: https://github.com/atom-build
[atom-master-builds]: https://github.com/atom/atom-master-builds/releases
[atom-org]: https://github.com/atom
[travis-ci]: https://magnum.travis-ci.com
[travis-ci-team]: https://github.com/organizations/atom/teams/596636
[travis-gem]: https://rubygems.org/gems/travis
[travis-pro]: http://about.travis-ci.org/docs/user/travis-pro
+118 -297
Ver Arquivo
@@ -1,335 +1,156 @@
# Creating Your First Package
# Create Your First Package
Let's take a look at creating your first package.
This tutorial will guide you though creating a simple command that replaces the
selected text with [ascii art](http://en.wikipedia.org/wiki/ASCII_art). When you
run our new command with the word "cool" selected, it will be replaced with:
To get started, hit `cmd-shift-P`, and start typing "Generate Package" to generate
a package. Once you select the "Generate Package" command, it'll ask you for a
name for your new package. Let's call ours _changer_.
Atom will pop open a new window, showing the _changer_ package with a default set of
folders and files created for us. Hit `cmd-shift-P` and start typing "Changer." You'll
see a new `Changer:Toggle` command which, if selected, pops up a greeting. So far,
so good!
In order to demonstrate the capabilities of Atom and its API, our Changer plugin
is going to do two things:
1. It'll show only modified files in the file tree
2. It'll append a new pane to the editor with some information about the modified
files
Let's get started!
## Changing Keybindings and Commands
Since Changer is primarily concerned with the file tree, let's write a
key binding that works only when the tree is focused. Instead of using the
default `toggle`, our keybinding executes a new command called `magic`.
_keymaps/changer.cson_ should change to look like this:
```coffeescript
'.tree-view':
'ctrl-V': 'changer:magic'
```
___
/\_ \
___ ___ ___\//\ \
/'___\ / __`\ / __`\\ \ \
/\ \__//\ \L\ \/\ \L\ \\_\ \_
\ \____\ \____/\ \____//\____\
\/____/\/___/ \/___/ \/____/
```
Notice that the keybinding is called `ctrl-V` &mdash; that's actually `ctrl-shift-v`.
You can use capital letters to denote using `shift` for your binding.
The final package can be viewed at
[https://github.com/atom/ascii-art](https://github.com/atom/ascii-art).
`.tree-view` represents the parent container for the tree view.
Keybindings only work within the context of where they're entered. In this case,
hitting `ctrl-V` anywhere other than tree won't do anything. Obviously, you can
bind to any part of the editor using element, id, or class names. For example,
you can map to `body` if you want to scope to anywhere in Atom, or just `.editor`
for the editor portion.
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. Try to avoid naming your package with the *atom-* prefix, for
example we are going to call this package _ascii-art_.
To bind keybindings to a command, we'll need to do a bit of association in our
CoffeeScript code using the `atom.workspaceView.command` method. This method takes a command
name and executes a callback function. Open up _lib/changer-view.coffee_, and
change `atom.workspaceView.command "changer:toggle"` to look like this:
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
is created, the ASCII Art package will be loaded and available in our new
window. To verify this, toggle the Command Palette (`cmd-shift-P`) and type
"ASCII Art". You'll see a new `ASCII Art: Toggle` command. When triggered, this
command displays a default message.
Now let's edit the package files to make our ASCII Art package do something
interesting. Since this package doesn't need any UI, we can remove all
view-related code. Start by opening up _lib/ascii-art.coffee_. Remove all view
code, so the `module.exports` section looks like this:
```coffeescript
atom.workspaceView.command "changer:magic", => @magic()
module.exports =
activate: ->
```
It's common practice to namespace your commands with your package name, separated
with a colon (`:`). Make sure to rename your `toggle` method to `magic` as well.
## Create a Command
Every time you reload the Atom editor, changes to your package code will be reevaluated,
just as if you were writing a script for the browser. Reload the editor, click on
the tree, hit your keybinding, and...nothing happens! What the heck?!
Now let's add a command. We recommend that you namespace your commands with the
package name followed by a `:`, so we'll call our command `ascii-art:convert`.
Register the command in _lib/ascii-art.coffee_:
Open up the _package.json_ file, and find the property called `activationEvents`.
Basically, this key tells Atom to not load a package until it hears a certain event.
Change the event to `changer:magic` and reload the editor:
```coffeescript
module.exports =
activate: ->
atom.workspaceView.command "ascii-art:convert", => @convert()
convert: ->
# This assumes the active pane item is an editor
editor = atom.workspace.activePaneItem
editor.insertText('Hello, World!')
```
The `atom.workspaceView.command` method takes a command name and a callback. The
callback executes when the command is triggered. In this case, when the command
is triggered the callback will call the `convert` method and insert 'Hello,
World!'.
## Reload the Package
Before we can trigger `ascii-art:convert`, we need to load the latest code for
our package by reloading the window. Run the command `window:reload` from the
command palette or by pressing `ctrl-alt-cmd-l`.
## Trigger the Command
Now open the command panel and search for the `ascii-art:convert` command. But
it's not there! To fix this, open _package.json_ and find the property called
`activationEvents`. Activation Events speed up load time by allowing Atom to
delay a package's activation until it's needed. So remove the existing command
and add `ascii-art:convert` to the `activationEvents` array:
```json
"activationEvents": ["changer:magic"]
"activationEvents": ["ascii-art:convert"],
```
Hitting the key binding on the tree now works!
First, reload the window by running the command `window:reload`. Now when you
run the `ascii-art:convert` command it will output 'Hello, World!'
## Working with Styles
## Add a Key Binding
The next step is to hide elements in the tree that aren't modified. To do that,
we'll first try and get a list of files that have not changed.
All packages are able to use jQuery in their code. In fact, there's [a list of
the bundled libraries Atom provides by default][bundled-libs].
We bring in jQuery by requiring the `atom` package and binding it to the `$` variable:
Now let's add a key binding to trigger the `ascii-art:convert` command. Open
_keymaps/ascii-art.cson_ and add a key binding linking `ctrl-alt-a` to the
`ascii-art:convert` command. You can delete the pre-existing key binding since
you don't need it anymore. When finished, the file will look like this:
```coffeescript
{$, View} = require 'atom'
'.editor':
'cmd-alt-a': 'ascii-art:convert'
```
Now, we can define the `magic` method to query the tree to get us a list of every
file that _wasn't_ modified:
Notice `.editor` on the first line. Just like CSS, keymap selectors *scope* key
bindings so they only apply to specific elements. In this case, our binding is
only active for elements matching the `.editor` selector. If the Tree View has
focus, pressing `cmd-alt-a` won't trigger the `ascii-art:convert` command. But
if the editor has focus, the `ascii-art:convert` method *will* be triggered.
More information on key bindings can be found in the
[keymaps](advanced/keymaps.html) documentation.
```coffeescript
magic: ->
$('ol.entries li').each (i, el) ->
if !$(el).hasClass("status-modified")
console.log el
```
Now reload the window and verify that the key binding works! You can also verify
that it **doesn't** work when the Tree View is focused.
You can access the dev console by hitting `alt-cmd-i`. Here, you'll see all the
statements from `console` calls. When we execute the `changer:magic` command, the
browser console lists items that are not being modified (_i.e._, those without the
`status-modified` class). Let's add a class to each of these elements called `hide-me`:
## Add the ASCII Art
```coffeescript
magic: ->
$('ol.entries li').each (i, el) ->
if !$(el).hasClass("status-modified")
$(el).addClass("hide-me")
```
Now we need to convert the selected text to ASCII art. To do this we will use
the [figlet](https://npmjs.org/package/figlet) [node](http://nodejs.org/) module
from [npm](https://npmjs.org/). Open _package.json_ and add the latest version of
figlet to the dependencies:
With our newly added class, we can manipulate the visibility of the elements
with a simple stylesheet. Open up _changer.css_ in the _stylesheets_ directory,
and add a single entry:
```css
ol.entries .hide-me {
display: none;
```json
"dependencies": {
"figlet": "1.0.8"
}
```
Refresh Atom, and run the `changer` command. You'll see all the non-changed
files disappear from the tree. Success!
After saving the file, run the command 'update-package-dependencies:update' from
the Command Palette. This will install the package's node module dependencies,
only figlet in this case. You will need to run
'update-package-dependencies:update' whenever you update the dependencies field
in your _package.json_ file.
![Changer_File_View]
There are a number of ways you can get the list back; let's just naively iterate
over the same elements and remove the class:
Now require the figlet node module in _lib/ascii-art.coffee_ and instead of
inserting 'Hello, World!' convert the selected text to ASCII art.
```coffeescript
magic: ->
$('ol.entries li').each (i, el) ->
if !$(el).hasClass("status-modified")
if !$(el).hasClass("hide-me")
$(el).addClass("hide-me")
else
$(el).removeClass("hide-me")
convert: ->
# This assumes the active pane item is an editor
editor = atom.workspace.activePaneItem
selection = editor.getSelection()
figlet = require 'figlet'
figlet selection.getText(), {font: "Larry 3D 2"}, (error, asciiArt) ->
if error
console.error(error)
else
selection.insertText("\n#{asciiArt}\n")
```
## Creating a New Panel
The next goal of this package is to append a panel to the Atom editor that lists
some information about the modified files.
To do that, we're going to first open up [the style guide][styleguide]. The Style
Guide lists every type of UI element that can be created by an Atom package. Aside
from helping you avoid writing fresh code from scratch, it ensures that packages
have the same look and feel no matter how they're built.
Every package that extends from the `View` class can provide an optional class
method called `content`. The `content` method constructs the DOM that your
package uses as its UI. The principals of `content` are built entirely on
[SpacePen][space-pen], which we'll touch upon only briefly here.
Our display will simply be an unordered list of the file names, and their
modified times. We'll append this list to a panel on the bottom of the editor. A
basic `panel` element inside a `tool-panel` will work well for us. Let's start by carving out a
`div` to hold the filenames:
```coffeescript
@content: ->
@div class: "changer tool-panel panel-bottom", =>
@div class: "panel", =>
@div class: "panel-heading", "Modified Files"
@div class: "panel-body padded", outlet: 'modifiedFilesContainer', =>
@ul class: 'modified-files-list', outlet: 'modifiedFilesList', =>
@li 'Modified File Test'
@li 'Modified File Test'
```
You can add any HTML attribute you like. `outlet` names the variable your
package can use to manipulate the element directly. The fat arrow (`=>`)
indicates that the next DOM set are nested children.
Once again, you can style `li` elements using your stylesheets. Let's test that
out by adding these lines to the _changer.css_ file:
```css
ul.modified-files-list {
color: white;
}
```
We'll add one more line to the end of the `magic` method to make this pane
appear:
```coffeescript
atom.workspaceView.prependToBottom(this)
```
If you refresh Atom and hit the key command, you'll see a box appear right
underneath the editor:
![Changer_Panel_Append]
As you might have guessed, `atom.workspaceView.prependToBottom` tells Atom to
prepend `this` item (_i.e._, whatever is defined by`@content`). If we had called
`atom.workspaceView.appendToBottom`, the pane would be attached below the status
bar.
Before we populate this panel for real, let's apply some logic to toggle the
pane off and on, just like we did with the tree view. Replace the
`atom.workspaceView.prependToBottom` call with this code:
```coffeescript
# toggles the pane
if @hasParent()
@remove()
else
atom.workspaceView.prependToBottom(this)
```
There are about a hundred different ways to toggle a pane on and off, and this
might not be the most efficient one. If you know your package needs to be
toggled on and off more freely, it might be better to draw the interface during the
initialization, then immediately call `hide()` on the element to remove it from
the view. You can then swap between `show()` and `hide()`, and instead of
forcing Atom to add and remove the element as we're doing here, it'll just set a
CSS property to control your package's visibility.
Refresh Atom, hit the key combo, and watch your test list appear and disappear.
## Calling Node.js Code
Since Atom is built on top of [Node.js][node], you can call any of its libraries,
including other modules that your package requires.
We'll iterate through our resulting tree, and construct the path to our modified
file based on its depth in the tree. We'll use Node to handle path joining for
directories.
Add the following Node module to the top of your file:
```coffeescript
path = require 'path'
```
Then, add these lines to your `magic` method, _before_ your pane drawing code:
```coffeescript
modifiedFiles = []
# for each single entry...
$('ol.entries li.file.status-modified span.name').each (i, el) ->
filePath = []
# ...grab its name...
filePath.unshift($(el).text())
# ... then find its parent directories, and grab their names
parents = $(el).parents('.directory.status-modified')
parents.each (i, el) ->
filePath.unshift($(el).find('div.header span.name').eq(0).text())
modifiedFilePath = path.join(atom.project.rootDirectory.path, filePath.join(path.sep))
modifiedFiles.push modifiedFilePath
```
`modifiedFiles` is an array containing a list of our modified files. We're also
using the node.js [`path` library][path] to get the proper directory separator
for our system.
Remove the two `@li` elements we added in `@content`, so that we can
populate our `modifiedFilesList` with real information. We'll do that by
iterating over `modifiedFiles`, accessing a file's last modified time, and
appending it to `modifiedFilesList`:
```coffeescript
# toggles the pane
if @hasParent()
@remove()
else
for file in modifiedFiles
stat = fs.lstatSync(file)
mtime = stat.mtime
@modifiedFilesList.append("<li>#{file} - Modified at #{mtime}")
atom.workspaceView.prependToBottom(this)
```
When you toggle the modified files list, your pane is now populated with the
filenames and modified times of files in your project:
![Changer_Panel_Timestamps]
You might notice that subsequent calls to this command reduplicate information.
We could provide an elegant way of rechecking files already in the list, but for
this demonstration, we'll just clear the `modifiedFilesList` each time it's closed:
```coffeescript
# toggles the pane
if @hasParent()
@modifiedFilesList.empty() # added this to clear the list on close
@remove()
else
for file in modifiedFiles
stat = fs.lstatSync(file)
mtime = stat.mtime
@modifiedFilesList.append("<li>#{file} - Modified at #{mtime}")
atom.workspaceView.prependToBottom(this)
```
## Coloring UI Elements
For packages that create new UI elements, adhering to the style guide is just one
part to keeping visual consistency. Packages dealing with color, fonts, padding,
margins, and other visual cues should rely on [Theme Variables][theme-vars], instead
of developing individual styles. Theme variables are variables defined by Atom
for use in packages and themes. They're only available in [`LESS`](http://lesscss.org/)
stylesheets.
For our package, let's remove the style defined by `ul.modified-files-list` in
_changer.css_. Create a new file under the _stylesheets_ directory called _text-colors.less_.
Here, we'll import the _ui-variables.less_ file, and define some Atom-specific
styles:
```less
@import "ui-variables";
ul.modified-files-list {
color: @text-color;
background-color: @background-color-info;
}
```
Using theme variables ensures that packages look great alongside any theme.
Select some text in an editor window and hit `cmd-alt-a`. :tada: You're now an
ASCII art professional!
## Further reading
For more information on the mechanics of packages, check out
[Creating a Package][creating-a-package].
* [Getting your project on GitHub guide](http://guides.github.com/overviews/desktop)
[bundled-libs]: creating-a-package.html#included-libraries
[styleguide]: https://github.com/atom/styleguide
[space-pen]: https://github.com/atom/space-pen
[node]: http://nodejs.org/
[path]: http://nodejs.org/docs/latest/api/path.html
[changer_file_view]: https://f.cloud.github.com/assets/69169/1441187/d7a7cb46-41a7-11e3-8128-d93f70a5d5c1.png
[changer_panel_append]: https://f.cloud.github.com/assets/69169/1441189/db0c74da-41a7-11e3-8286-b82dd9190c34.png
[changer_panel_timestamps]: https://f.cloud.github.com/assets/69169/1441190/dcc8eeb6-41a7-11e3-830f-1f1b33072fcd.png
[theme-vars]: theme-variables.html
[creating-a-package]: creating-a-package.html
* [Creating a package guide](creating-a-package.html) for more information
on the mechanics of packages
* [Publishing a package guide](publish-a-package.html) for more information
on publishing your package to [atom.io](https://atom.io)
+14
Ver Arquivo
@@ -0,0 +1,14 @@
# Your init script
#
# Atom will evaluate this file each time a new window is opened. It is run
# after packages are loaded/activated and after the previous editor state
# has been restored.
#
# An example hack to make opened Markdown files always be soft wrapped:
#
# path = require 'path'
#
# atom.workspaceView.eachEditorView (editorView) ->
# editor = editorView.getEditor()
# if path.extname(editor.getPath()) is '.md'
# editor.setSoftWrap(true)
+9 -4
Ver Arquivo
@@ -1,13 +1,18 @@
# User keymap
# Your keymap
#
# Atom keymaps work similarly to stylesheets. Just as stylesheets use selectors
# to apply styles to elements, Atom keymaps use selectors to associate
# keystrokes with events in specific contexts. Here's a small example, excerpted
# from Atom's built-in keymaps:
# keystrokes with events in specific contexts.
#
# You can create a new keybinding in this file by typing "key" and then hitting
# tab.
#
# Here's an example taken from Atom's built-in keymap:
#
# '.editor':
# 'enter': 'editor:newline'
#
# 'body':
# '.workspace':
# 'ctrl-P': 'core:move-up'
# 'ctrl-p': 'core:move-down'
#
+15
Ver Arquivo
@@ -0,0 +1,15 @@
# Your snippets
#
# Atom snippets allow you to enter a simple prefix in the editor and hit tab to
# expand the prefix into a larger code block with templated values.
#
# You can create a new snippet in this file by typing "snip" and then hitting
# tab.
#
# An example CoffeeScript snippet to expand log to console.log:
#
# '.source.coffee':
# 'Console log':
# 'prefix': 'log'
# 'body': 'console.log $1'
#
-44
Ver Arquivo
@@ -1,44 +0,0 @@
".source.coffee":
"Describe block":
prefix: "de"
body: """
describe "${1:description}", ->
${2:body}
"""
"It block":
prefix: "i"
body: """
it "$1", ->
$2
"""
"Before each":
prefix: "be"
body: """
beforeEach ->
$1
"""
"After each":
prefix: "af"
body: """
afterEach ->
$1
"""
"Expectation":
prefix: "ex"
body: "expect($1).to$2"
"Console log":
prefix: "log"
body: "console.log $1"
"Range array":
prefix: "ra"
body: "[[$1, $2], [$3, $4]]"
"Point array":
prefix: "pt"
body: "[$1, $2]"
"Key-value pair":
prefix: ":"
body: '${1:"${2:key}"}: ${3:value}'
"Create Jasmine spy":
prefix: "spy"
body: 'jasmine.createSpy("${1:description}")$2'
+21
Ver Arquivo
@@ -0,0 +1,21 @@
/*
* Your Stylesheet
*
* This stylesheet is loaded when Atom starts up and is reloaded automatically
* when it is changed.
*
* If you are unfamiliar with LESS, you can read more about it here:
* http://www.lesscss.org
*/
.tree-view {
}
.editor {
}
.editor .cursor {
}
-1
Ver Arquivo
@@ -1 +0,0 @@
# For more on how to configure atom open `~/github/atom/docs/configuring-and-extending.md`
-8
Ver Arquivo
@@ -1,8 +0,0 @@
/* User styles */
.tree-view {
}
.editor {
}
+3 -6
Ver Arquivo
@@ -1,12 +1,8 @@
{Point, Range} = require 'text-buffer'
module.exports =
_: require 'underscore-plus'
BufferedNodeProcess: require '../src/buffered-node-process'
BufferedProcess: require '../src/buffered-process'
Directory: require '../src/directory'
File: require '../src/file'
fs: require 'fs-plus'
Git: require '../src/git'
Point: Point
Range: Range
@@ -20,8 +16,9 @@ unless process.env.ATOM_SHELL_INTERNAL_RUN_AS_NODE
module.exports.$$ = $$
module.exports.$$$ = $$$
module.exports.EditorView = require '../src/editor-view'
module.exports.WorkspaceView = require '../src/workspace-view'
module.exports.SelectList = require '../src/select-list'
module.exports.ScrollView = require '../src/scroll-view'
module.exports.SelectListView = require '../src/select-list-view'
module.exports.Task = require '../src/task'
module.exports.View = View
module.exports.WorkspaceView = require '../src/workspace-view'
module.exports.Workspace = require '../src/workspace'
-6
Ver Arquivo
@@ -9,9 +9,6 @@
'shift-home': 'editor:select-to-first-character-of-line'
'shift-end': 'editor:select-to-end-of-line'
# Sublime Parity
'ctrl-t': 'editor:transpose'
'.editor:not(.mini)':
# Atom Specific
'ctrl-C': 'editor:copy-path'
@@ -24,9 +21,6 @@
'ctrl-shift-up': 'editor:add-selection-above'
'ctrl-shift-down': 'editor:add-selection-below'
'.tool-panel':
'escape': 'core:close'
'.tool-panel.panel-left, .tool-panel.panel-right':
'escape': 'tool-panel:unfocus'
+16 -9
Ver Arquivo
@@ -1,4 +1,4 @@
'.platform-darwin':
'body':
# Apple specific
'cmd-q': 'application:quit'
'cmd-h': 'application:hide'
@@ -68,6 +68,8 @@
'cmd-=': 'window:increase-font-size'
'cmd-+': 'window:increase-font-size'
'cmd--': 'window:decrease-font-size'
'cmd-_': 'window:decrease-font-size'
'cmd-0': 'window:reset-font-size'
'cmd-k up': 'pane:split-up' # Atom Specific
'cmd-k down': 'pane:split-down' # Atom Specific
@@ -75,8 +77,12 @@
'cmd-k right': 'pane:split-right' # Atom Specific
'cmd-k cmd-w': 'pane:close' # Atom Specific
'cmd-k alt-cmd-w': 'pane:close-other-items' # Atom Specific
'cmd-k cmd-left': 'window:focus-previous-pane'
'cmd-k cmd-right': 'window:focus-next-pane'
'cmd-k cmd-p': 'window:focus-previous-pane'
'cmd-k cmd-n': 'window:focus-next-pane'
'cmd-k cmd-up': 'window:focus-pane-above'
'cmd-k cmd-down': 'window:focus-pane-below'
'cmd-k cmd-left': 'window:focus-pane-on-left'
'cmd-k cmd-right': 'window:focus-pane-on-right'
'cmd-1': 'pane:show-item-1'
'cmd-2': 'pane:show-item-2'
'cmd-3': 'pane:show-item-3'
@@ -87,9 +93,10 @@
'cmd-8': 'pane:show-item-8'
'cmd-9': 'pane:show-item-9'
'.platform-darwin .editor':
'.editor':
# Apple Specific
'cmd-backspace': 'editor:backspace-to-beginning-of-line'
'cmd-shift-backspace': 'editor:backspace-to-beginning-of-line'
'cmd-delete': 'editor:backspace-to-beginning-of-line'
'ctrl-A': 'editor:select-to-first-character-of-line'
'ctrl-E': 'editor:select-to-end-of-line'
@@ -112,13 +119,13 @@
'cmd-k cmd-u': 'editor:upper-case'
'cmd-k cmd-l': 'editor:lower-case'
'cmd-l': 'editor:select-line'
'ctrl-t': 'editor:transpose'
'body.platform-darwin .editor:not(.mini)':
'.workspace .editor:not(.mini)':
# Atom specific
'alt-cmd-z': 'editor:checkout-head-revision'
'cmd-<': 'editor:scroll-to-cursor'
'alt-cmd-ctrl-f': 'editor:fold-selection'
'cmd-=': 'editor:auto-indent'
# Sublime Parity
'cmd-enter': 'editor:newline-below'
@@ -128,8 +135,8 @@
'ctrl-cmd-up': 'editor:move-line-up'
'ctrl-cmd-down': 'editor:move-line-down'
'cmd-/': 'editor:toggle-line-comments'
'cmd-j': 'editor:join-line'
'cmd-D': 'editor:duplicate-line'
'cmd-j': 'editor:join-lines'
'cmd-D': 'editor:duplicate-lines'
'cmd-L': 'editor:split-selections-into-lines'
'cmd-alt-[': 'editor:fold-current-row'
@@ -148,7 +155,7 @@
'cmd-k cmd-9': 'editor:fold-at-indent-level-9'
# allow standard input fields to work correctly
'body.platform-darwin .native-key-bindings':
'body .native-key-bindings':
'cmd-z': 'native!'
'cmd-Z': 'native!'
'cmd-x': 'native!'
+109
Ver Arquivo
@@ -0,0 +1,109 @@
'body':
# Atom Specific
'enter': 'core:confirm'
'escape': 'core:cancel'
'up': 'core:move-up'
'down': 'core:move-down'
'left': 'core:move-left'
'right': 'core:move-right'
'ctrl-alt-r': 'window:reload'
'ctrl-alt-i': 'window:toggle-dev-tools'
'ctrl-alt-p': 'window:run-package-specs'
'ctrl-alt-s': 'application:run-all-specs'
'ctrl-shift-o': 'application:open-dev'
# Sublime Parity
'ctrl-N': 'application:new-window'
'ctrl-W': 'window:close'
'ctrl-o': 'application:open'
'ctrl-q': 'application:quit'
'ctrl-T': 'pane:reopen-closed-item'
'ctrl-n': 'application:new-file'
'ctrl-s': 'core:save'
'ctrl-S': 'core:save-as'
'ctrl-w': 'core:close'
'ctrl-z': 'core:undo'
'ctrl-y': 'core:redo'
'ctrl-x': 'core:cut'
'ctrl-c': 'core:copy'
'ctrl-v': 'core:paste'
'shift-up': 'core:select-up'
'shift-down': 'core:select-down'
'shift-left': 'core:select-left'
'shift-right': 'core:select-right'
'delete': 'core:delete'
'pageup': 'core:page-up'
'pagedown': 'core:page-down'
'backspace': 'core:backspace'
'ctrl-tab': 'pane:show-next-item'
'ctrl-shift-tab': 'pane:show-previous-item'
'ctrl-shift-up': 'core:move-up'
'ctrl-shift-down': 'core:move-down'
'ctrl-=': 'window:increase-font-size'
'ctrl-+': 'window:increase-font-size'
'ctrl--': 'window:decrease-font-size'
'ctrl-_': 'window:decrease-font-size'
'ctrl-0': 'window:reset-font-size'
'ctrl-k up': 'pane:split-up' # Atom Specific
'ctrl-k down': 'pane:split-down' # Atom Specific
'ctrl-k left': 'pane:split-left' # Atom Specific
'ctrl-k right': 'pane:split-right' # Atom Specific
'ctrl-k ctrl-w': 'pane:close' # Atom Specific
'ctrl-k alt-ctrl-w': 'pane:close-other-items' # Atom Specific
'ctrl-k ctrl-p': 'window:focus-previous-pane'
'ctrl-k ctrl-n': 'window:focus-next-pane'
'ctrl-k ctrl-up': 'window:focus-pane-above'
'ctrl-k ctrl-down': 'window:focus-pane-below'
'ctrl-k ctrl-left': 'window:focus-pane-on-left'
'ctrl-k ctrl-right': 'window:focus-pane-on-right'
'.workspace .editor':
# Windows specific
'ctrl-delete': 'editor:backspace-to-beginning-of-word'
# Sublime Parity
'ctrl-a': 'core:select-all'
'ctrl-alt-p': 'editor:log-cursor-scope'
'ctrl-k ctrl-u': 'editor:upper-case'
'ctrl-k ctrl-l': 'editor:lower-case'
'.workspace .editor:not(.mini)':
# Atom specific
'alt-ctrl-z': 'editor:checkout-head-revision'
'ctrl-<': 'editor:scroll-to-cursor'
'alt-ctrl-f': 'editor:fold-selection'
# Sublime Parity
'ctrl-enter': 'editor:newline-below'
'ctrl-shift-enter': 'editor:newline-above'
'ctrl-]': 'editor:indent-selected-rows'
'ctrl-[': 'editor:outdent-selected-rows'
'ctrl-up': 'editor:move-line-up'
'ctrl-down': 'editor:move-line-down'
'ctrl-/': 'editor:toggle-line-comments'
'ctrl-j': 'editor:join-lines'
'ctrl-D': 'editor:duplicate-lines'
'ctrl-alt-[': 'editor:fold-current-row'
'ctrl-alt-]': 'editor:unfold-current-row'
'ctrl-alt-{': 'editor:fold-all' # Atom Specific
'ctrl-alt-}': 'editor:unfold-all' # Atom Specific
'ctrl-k ctrl-0': 'editor:unfold-all'
'ctrl-k ctrl-1': 'editor:fold-at-indent-level-1'
'ctrl-k ctrl-2': 'editor:fold-at-indent-level-2'
'ctrl-k ctrl-3': 'editor:fold-at-indent-level-3'
'ctrl-k ctrl-4': 'editor:fold-at-indent-level-4'
'ctrl-k ctrl-5': 'editor:fold-at-indent-level-5'
'ctrl-k ctrl-6': 'editor:fold-at-indent-level-6'
'ctrl-k ctrl-7': 'editor:fold-at-indent-level-7'
'ctrl-k ctrl-8': 'editor:fold-at-indent-level-8'
'ctrl-k ctrl-9': 'editor:fold-at-indent-level-9'
# allow standard input fields to work correctly
'body .native-key-bindings':
'ctrl-z': 'native!'
'ctrl-Z': 'native!'
'ctrl-x': 'native!'
'ctrl-c': 'native!'
'ctrl-v': 'native!'
+14 -9
Ver Arquivo
@@ -1,4 +1,4 @@
'.platform-win32':
'body':
# Atom Specific
'enter': 'core:confirm'
'escape': 'core:cancel'
@@ -40,6 +40,8 @@
'ctrl-=': 'window:increase-font-size'
'ctrl-+': 'window:increase-font-size'
'ctrl--': 'window:decrease-font-size'
'ctrl-_': 'window:decrease-font-size'
'ctrl-0': 'window:reset-font-size'
'ctrl-k up': 'pane:split-up' # Atom Specific
'ctrl-k down': 'pane:split-down' # Atom Specific
@@ -47,10 +49,14 @@
'ctrl-k right': 'pane:split-right' # Atom Specific
'ctrl-k ctrl-w': 'pane:close' # Atom Specific
'ctrl-k alt-ctrl-w': 'pane:close-other-items' # Atom Specific
'ctrl-k ctrl-left': 'window:focus-previous-pane'
'ctrl-k ctrl-right': 'window:focus-next-pane'
'ctrl-k ctrl-p': 'window:focus-previous-pane'
'ctrl-k ctrl-n': 'window:focus-next-pane'
'ctrl-k ctrl-up': 'window:focus-pane-above'
'ctrl-k ctrl-down': 'window:focus-pane-below'
'ctrl-k ctrl-left': 'window:focus-pane-on-left'
'ctrl-k ctrl-right': 'window:focus-pane-on-right'
'.platform-win32 .editor':
'.workspace .editor':
# Windows specific
'ctrl-delete': 'editor:backspace-to-beginning-of-word'
@@ -60,12 +66,11 @@
'ctrl-k ctrl-u': 'editor:upper-case'
'ctrl-k ctrl-l': 'editor:lower-case'
'.platform-win32 .editor:not(.mini)':
'.workspace .editor:not(.mini)':
# Atom specific
'alt-ctrl-z': 'editor:checkout-head-revision'
'ctrl-<': 'editor:scroll-to-cursor'
'alt-ctrl-f': 'editor:fold-selection'
'ctrl-=': 'editor:auto-indent'
# Sublime Parity
'ctrl-enter': 'editor:newline-below'
@@ -75,8 +80,8 @@
'ctrl-up': 'editor:move-line-up'
'ctrl-down': 'editor:move-line-down'
'ctrl-/': 'editor:toggle-line-comments'
'ctrl-j': 'editor:join-line'
'ctrl-D': 'editor:duplicate-line'
'ctrl-j': 'editor:join-lines'
'ctrl-D': 'editor:duplicate-lines'
'ctrl-alt-[': 'editor:fold-current-row'
'ctrl-alt-]': 'editor:unfold-current-row'
@@ -94,7 +99,7 @@
'ctrl-k ctrl-9': 'editor:fold-at-indent-level-9'
# allow standard input fields to work correctly
'.platform-win32 input:not(.hidden-input), .platform-win32 .native-key-bindings':
'body .native-key-bindings':
'ctrl-z': 'native!'
'ctrl-Z': 'native!'
'ctrl-x': 'native!'
+14 -5
Ver Arquivo
@@ -3,10 +3,20 @@
label: 'Atom'
submenu: [
{ label: 'About Atom', command: 'application:about' }
{ label: 'View License', command: 'application:open-license' }
{ label: "VERSION", enabled: false }
{ label: "Install update", command: 'application:install-update', visible: 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' }
{ label: 'Open Your Init Script', command: 'application:open-your-init-script' }
{ label: 'Open Your Keymap', command: 'application:open-your-keymap' }
{ label: 'Open Your Snippets', command: 'application:open-your-snippets' }
{ label: 'Open Your Stylesheet', command: 'application:open-your-stylesheet' }
{ type: 'separator' }
{ label: 'Install Shell Commands', command: 'window:install-shell-commands' }
{ type: 'separator' }
{ label: 'Hide Atom', command: 'application:hide' }
{ label: 'Hide Others', command: 'application:hide-other-applications' }
@@ -28,7 +38,7 @@
{ label: 'Save All', command: 'window:save-all' }
{ type: 'separator' }
{ label: 'Close Buffer', command: 'core:close' }
{ label: 'Close All Buffers', command: 'pane:close' }
{ label: 'Close Pane', command: 'pane:close' }
{ label: 'Close Window', command: 'window:close' }
]
}
@@ -55,9 +65,9 @@
{ type: 'separator' }
{ label: 'Move Line Up', command: 'editor:move-line-up' }
{ label: 'Move Line Down', command: 'editor:move-line-down' }
{ label: 'Duplicate Line', command: 'editor:duplicate-line' }
{ label: 'Duplicate Lines', command: 'editor:duplicate-lines' }
{ label: 'Delete Line', command: 'editor:delete-line' }
{ label: 'Join Lines', command: 'editor:join-line' }
{ label: 'Join Lines', command: 'editor:join-lines' }
]
}
{
@@ -157,7 +167,6 @@
label: 'Help'
submenu: [
{ label: 'Documentation', command: 'application:open-documentation' }
{ label: 'Report an Issue', command: 'application:report-issue' }
{ type: 'separator' }
]
}
+154
Ver Arquivo
@@ -0,0 +1,154 @@
'menu': [
{
label: '&File'
submenu: [
{ label: 'New &Window', command: 'application:new-window' }
{ label: '&New File', command: 'application:new-file' }
{ label: '&Open...', command: 'application:open' }
{ label: 'Reopen Last &Item', command: 'pane:reopen-closed-item' }
{ type: 'separator' }
{ label: '&Preferences...', command: 'application:show-settings' }
{ type: 'separator' }
{ label: '&Save', command: 'core:save' }
{ label: 'Save &As...', command: 'core:save-as' }
{ label: 'Save A&ll', command: 'window:save-all' }
{ type: 'separator' }
{ label: '&Close Buffer', command: 'core:close' }
{ label: 'Close All &Buffers', command: 'pane:close' }
{ label: 'Clos&e Window', command: 'window:close' }
{ type: 'separator' }
{ label: 'Quit', command: 'application:quit' }
]
}
{
label: '&Edit'
submenu: [
{ label: '&Undo', command: 'core:undo' }
{ label: '&Redo', command: 'core:redo' }
{ type: 'separator' }
{ label: '&Cut', command: 'core:cut' }
{ label: 'C&opy', command: 'core:copy' }
{ label: 'Copy Pat&h', command: 'editor:copy-path' }
{ label: '&Paste', command: 'core:paste' }
{ label: 'Select &All', command: 'core:select-all' }
{ type: 'separator' }
{ label: '&Toggle Comments', command: 'editor:toggle-line-comments' }
{
label: 'Lines',
submenu: [
{ label: '&Indent', command: 'editor:indent-selected-rows' }
{ label: '&Outdent', command: 'editor:outdent-selected-rows' }
{ label: '&Auto Indent', command: 'editor:auto-indent' }
{ type: 'separator' }
{ label: 'Move Line &Up', command: 'editor:move-line-up' }
{ label: 'Move Line &Down', command: 'editor:move-line-down' }
{ label: 'Du&plicate Lines', command: 'editor:duplicate-lines' }
{ label: 'D&elete Line', command: 'editor:delete-line' }
{ label: '&Join Lines', command: 'editor:join-lines' }
]
}
{
label: 'Text',
submenu: [
{ label: '&Upper Case', command: 'editor:upper-case' }
{ label: '&Lower Case', command: 'editor:lower-case' }
{ type: 'separator' }
{ label: 'Delete to End of &Word', command: 'editor:delete-to-end-of-word' }
{ label: '&Delete Line', command: 'editor:delete-line' }
{ type: 'separator' }
{ label: '&Transpose', command: 'editor:transpose' }
]
}
{
label: 'Folding',
submenu: [
{ label: '&Fold', command: 'editor:fold-current-row' }
{ label: '&Unfold', command: 'editor:unfold-current-row' }
{ label: 'Unfold &All', command: 'editor:unfold-all' }
{ type: 'separator' }
{ label: 'Fol&d All', command: 'editor:fold-all' }
{ label: 'Fold Level 1', command: 'editor:fold-at-indent-level-1' }
{ label: 'Fold Level 2', command: 'editor:fold-at-indent-level-2' }
{ label: 'Fold Level 3', command: 'editor:fold-at-indent-level-3' }
{ label: 'Fold Level 4', command: 'editor:fold-at-indent-level-4' }
{ label: 'Fold Level 5', command: 'editor:fold-at-indent-level-5' }
{ label: 'Fold Level 6', command: 'editor:fold-at-indent-level-6' }
{ label: 'Fold Level 7', command: 'editor:fold-at-indent-level-7' }
{ label: 'Fold Level 8', command: 'editor:fold-at-indent-level-8' }
{ label: 'Fold Level 9', command: 'editor:fold-at-indent-level-9' }
]
}
]
}
{
label: '&View'
submenu: [
{ label: '&Reload', command: 'window:reload' }
{ label: 'Toggle &Full Screen', command: 'window:toggle-full-screen' }
{
label: 'Developer'
submenu: [
{ label: 'Open In &Dev Mode...', command: 'application:open-dev' }
{ label: 'Run &Atom Specs', command: 'application:run-all-specs' }
{ label: 'Run Package &Specs', command: 'window:run-package-specs' }
{ label: 'Toggle Developer &Tools', command: 'window:toggle-dev-tools' }
]
}
{ type: 'separator' }
{ label: 'Toggle Soft &Wrap', command: 'editor:toggle-soft-wrap' }
]
}
{
label: '&Selection'
submenu: [
{ label: 'Add Selection &Above', command: 'editor:add-selection-above' }
{ label: 'Add Selection &Below', command: 'editor:add-selection-below' }
{ label: 'S&plit into Lines', command: 'editor:split-selections-into-lines'}
{ type: 'separator' }
{ label: 'Select to &Top', command: 'core:select-to-top' }
{ label: 'Select to Botto&m', command: 'core:select-to-bottom' }
{ type: 'separator' }
{ label: 'Select &Line', command: 'editor:select-line' }
{ label: 'Select &Word', command: 'editor:select-word' }
{ label: 'Select to Beginning of W&ord', command: 'editor:select-to-beginning-of-word' }
{ label: 'Select to Beginning of L&ine', command: 'editor:select-to-beginning-of-line' }
{ label: 'Select to First &Character of Line', command: 'editor:select-to-first-character-of-line' }
{ label: 'Select to End of Wor&d', command: 'editor:select-to-end-of-word' }
{ label: 'Select to End of Lin&e', command: 'editor:select-to-end-of-line' }
]
}
{
label: 'F&ind'
submenu: []
}
{
label: '&Packages'
submenu: []
}
{
label: '&Window'
submenu: [
{ label: 'Mi&nimize', command: 'application:minimize' }
{ label: 'Ma&ximize', command: 'application:zoom' }
{ type: 'separator' }
{ label: 'Bring &All to Front', command: 'application:bring-all-windows-to-front' }
]
}
{
label: '&Help'
submenu: [
{ label: 'View &License', command: 'application:open-license' }
{ label: "VERSION", enabled: false }
{ type: 'separator' }
{ label: '&Documentation', command: 'application:open-documentation' }
{ type: 'separator' }
]
}
]
+3 -2
Ver Arquivo
@@ -43,9 +43,9 @@
{ type: 'separator' }
{ label: 'Move Line &Up', command: 'editor:move-line-up' }
{ label: 'Move Line &Down', command: 'editor:move-line-down' }
{ label: 'Du&plicate Line', command: 'editor:duplicate-line' }
{ label: 'Du&plicate Lines', command: 'editor:duplicate-lines' }
{ label: 'D&elete Line', command: 'editor:delete-line' }
{ label: '&Join Lines', command: 'editor:join-line' }
{ label: '&Join Lines', command: 'editor:join-lines' }
]
}
{
@@ -145,6 +145,7 @@
label: '&Help'
submenu: [
{ label: '&About Atom...', command: 'application:about' }
{ label: 'View &License', command: 'application:open-license' }
{ label: "VERSION", enabled: false }
{ label: "Install &update", command: 'application:install-update', visible: false }
{ type: 'separator' }
+103 -111
Ver Arquivo
@@ -1,7 +1,8 @@
{
"name": "atom",
"productName": "Atom",
"version": "0.47.0",
"version": "0.85.0",
"description": "A hackable text editor for the 21st Century.",
"main": "./src/browser/main.js",
"repository": {
"type": "git",
@@ -10,133 +11,124 @@
"bugs": {
"url": "https://github.com/atom/atom/issues"
},
"licenses": [
{
"type": "Apache",
"url": "http://github.com/atom/atom/raw/master/LICENSE.md"
}
],
"atomShellVersion": "0.8.5",
"license": "All Rights Reserved",
"atomShellVersion": "0.11.5",
"dependencies": {
"async": "0.2.6",
"atom-keymap": "^0.16.0",
"bootstrap": "git://github.com/atom/bootstrap.git#6af81906189f1747fd6c93479e3d998ebe041372",
"clear-cut": "0.2.0",
"coffee-script": "1.6.3",
"coffeestack": "0.6.0",
"clear-cut": "0.4.0",
"coffee-script": "1.7.0",
"coffeestack": "0.7.0",
"delegato": "1.x",
"emissary": "1.x",
"first-mate": "1.x",
"fs-plus": "1.x",
"emissary": "^1.2.1",
"first-mate": "^1.5.1",
"fs-plus": "^2.2",
"fstream": "0.1.24",
"fuzzaldrin": "0.6.0",
"git-utils": "0.33.1",
"fuzzaldrin": "~1.1",
"git-utils": "^1.2.2",
"grim": "0.6.0",
"guid": "0.0.10",
"jasmine-tagged": "0.3.0",
"mkdirp": "0.3.5",
"keytar": "0.15.1",
"less-cache": "0.11.0",
"jasmine-tagged": "^1.1.1",
"keytar": "1.x",
"less-cache": "0.12.0",
"mixto": "1.x",
"nslog": "0.3.0",
"oniguruma": "1.x",
"mkdirp": "0.3.5",
"nslog": "0.5.0",
"oniguruma": "^1.0.6",
"optimist": "0.4.0",
"pathwatcher": "0.14.2",
"pegjs": "0.8.0",
"pathwatcher": "^1.1.1",
"property-accessors": "1.x",
"q": "0.9.7",
"scandal": "0.13.0",
"season": "0.14.0",
"q": "^1.0.1",
"random-words": "0.0.1",
"runas": "0.5.x",
"scandal": "0.15.2",
"scoped-property-store": "^0.8.0",
"scrollbar-style": "^0.1.0",
"season": "^1.0.2",
"semver": "1.1.4",
"serializable": "1.x",
"space-pen": "3.1.1",
"temp": "0.5.0",
"text-buffer": "0.15.0",
"text-buffer": "^1.4.6",
"theorist": "1.x",
"underscore-plus": "1.x",
"underscore-plus": "^1.1.2",
"vm-compatibility-layer": "0.1.0"
},
"packageDependencies": {
"atom-dark-syntax": "0.10.0",
"atom-dark-ui": "0.21.0",
"atom-light-syntax": "0.10.0",
"atom-light-ui": "0.20.0",
"base16-tomorrow-dark-theme": "0.8.0",
"solarized-dark-syntax": "0.6.0",
"solarized-light-syntax": "0.2.0",
"archive-view": "0.21.0",
"autocomplete": "0.20.0",
"autoflow": "0.12.0",
"autosave": "0.10.0",
"background-tips": "0.5.0",
"bookmarks": "0.16.0",
"bracket-matcher": "0.19.0",
"command-logger": "0.10.0",
"command-palette": "0.14.0",
"dev-live-reload": "0.23.0",
"editor-stats": "0.12.0",
"exception-reporting": "0.12.0",
"feedback": "0.22.0",
"find-and-replace": "0.77.0",
"fuzzy-finder": "0.31.0",
"gists": "0.15.0",
"git-diff": "0.23.0",
"github-sign-in": "0.16.0",
"go-to-line": "0.15.0",
"grammar-selector": "0.17.0",
"image-view": "0.17.0",
"keybinding-resolver": "0.9.0",
"link": "0.14.0",
"markdown-preview": "0.25.1",
"metrics": "0.21.0",
"package-generator": "0.24.0",
"release-notes": "0.15.1",
"settings-view": "0.57.0",
"snippets": "0.20.0",
"spell-check": "0.20.0",
"status-bar": "0.32.0",
"styleguide": "0.19.0",
"symbols-view": "0.29.0",
"tabs": "0.17.0",
"terminal": "0.26.0",
"timecop": "0.13.0",
"to-the-hubs": "0.17.0",
"tree-view": "0.63.0",
"visual-bell": "0.6.0",
"welcome": "0.4.0",
"whitespace": "0.10.0",
"wrap-guide": "0.12.0",
"language-c": "0.2.0",
"language-clojure": "0.1.0",
"language-coffee-script": "0.4.0",
"language-css": "0.2.0",
"language-gfm": "0.11.0",
"language-git": "0.3.0",
"language-go": "0.2.0",
"language-html": "0.2.0",
"language-hyperlink": "0.3.0",
"language-java": "0.2.0",
"language-javascript": "0.4.0",
"language-json": "0.2.0",
"language-less": "0.1.0",
"language-make": "0.1.0",
"language-mustache": "0.1.0",
"language-objective-c": "0.2.0",
"language-pegjs": "0.1.0",
"language-perl": "0.2.0",
"language-php": "0.3.0",
"language-property-list": "0.2.0",
"language-puppet": "0.2.0",
"language-python": "0.2.0",
"language-ruby": "0.7.0",
"language-ruby-on-rails": "0.4.0",
"language-sass": "0.3.0",
"language-shellscript": "0.2.0",
"language-source": "0.2.0",
"language-sql": "0.2.0",
"language-text": "0.2.0",
"language-todo": "0.2.0",
"language-toml": "0.7.0",
"language-xml": "0.2.0",
"language-yaml": "0.1.0"
"atom-dark-syntax": "0.15.0",
"atom-dark-ui": "0.26.0",
"atom-light-syntax": "0.16.0",
"atom-light-ui": "0.23.0",
"base16-tomorrow-dark-theme": "0.13.0",
"solarized-dark-syntax": "0.14.0",
"solarized-light-syntax": "0.7.0",
"archive-view": "0.30.0",
"autocomplete": "0.27.0",
"autoflow": "0.15.0",
"autosave": "0.13.0",
"background-tips": "0.10.0",
"bookmarks": "0.22.0",
"bracket-matcher": "0.29.0",
"command-palette": "0.20.0",
"dev-live-reload": "0.30.0",
"exception-reporting": "0.17.0",
"feedback": "0.28.0",
"find-and-replace": "0.94.0",
"fuzzy-finder": "0.46.0",
"git-diff": "0.27.0",
"go-to-line": "0.18.0",
"grammar-selector": "0.23.0",
"image-view": "0.32.0",
"keybinding-resolver": "0.15.0",
"link": "0.20.0",
"markdown-preview": "0.59.0",
"metrics": "0.32.0",
"open-on-github": "0.26.0",
"package-generator": "0.30.0",
"release-notes": "0.26.0",
"settings-view": "0.107.0",
"snippets": "0.40.0",
"spell-check": "0.32.0",
"status-bar": "0.39.0",
"styleguide": "0.28.0",
"symbols-view": "0.49.0",
"tabs": "0.34.0",
"timecop": "0.17.0",
"tree-view": "0.86.0",
"update-package-dependencies": "0.6.0",
"welcome": "0.12.0",
"whitespace": "0.22.0",
"wrap-guide": "0.18.0",
"language-c": "0.14.0",
"language-coffee-script": "0.19.0",
"language-css": "0.13.0",
"language-gfm": "0.29.0",
"language-git": "0.9.0",
"language-go": "0.8.0",
"language-html": "0.18.0",
"language-hyperlink": "0.9.0",
"language-java": "0.9.0",
"language-javascript": "0.21.0",
"language-json": "0.8.0",
"language-less": "0.6.0",
"language-make": "0.9.0",
"language-objective-c": "0.11.0",
"language-perl": "0.8.0",
"language-php": "0.14.0",
"language-property-list": "0.7.0",
"language-python": "0.14.0",
"language-ruby": "0.21.0",
"language-ruby-on-rails": "0.12.0",
"language-sass": "0.8.0",
"language-shellscript": "0.8.0",
"language-source": "0.7.0",
"language-sql": "0.7.0",
"language-text": "0.6.0",
"language-todo": "0.9.0",
"language-toml": "0.12.0",
"language-xml": "0.9.0",
"language-yaml": "0.6.0"
},
"private": true,
"scripts": {
Arquivo executável → Arquivo normal
BIN
Ver Arquivo
Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 52 KiB

Depois

Largura:  |  Altura:  |  Tamanho: 191 KiB

+8
Ver Arquivo
@@ -0,0 +1,8 @@
[Desktop Entry]
Name=Atom
Comment=<%= description %>
Exec=/usr/share/atom/atom %U
Icon=atom
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;TextEditor;
+8
Ver Arquivo
@@ -0,0 +1,8 @@
Package: <%= name %>
Version: <%= version %>
Section: <%= section %>
Priority: optional
Architecture: <%= arch %>
Installed-Size: `du -ks usr|cut -f 1`
Maintainer: <%= maintainer %>
Description: <%= description %>
+3 -1
Ver Arquivo
@@ -25,13 +25,15 @@
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>LSMinimumSystemVersion</key>
<string>10.7</string>
<string>10.8</string>
<key>NSAppleScriptEnabled</key>
<string>YES</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>AtomApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<true/>
<key>SUPublicDSAKeyFile</key>
<string>speakeasy.pem</string>
<key>SUScheduledCheckInterval</key>
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 345 KiB

Depois

Largura:  |  Altura:  |  Tamanho: 361 KiB

+21 -15
Ver Arquivo
@@ -1,13 +1,15 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var nodeMinorVersion = process.versions.node.split('.')[1]
if (nodeMinorVersion !== '10') {
console.warn("You must run script/bootstrap and script/build with node v0.10.x");
process.exit(1);
}
var safeExec = require('./utils/child-process-wrapper.js').safeExec;
var fs = require('fs');
var path = require('path');
// OAuth token for atom-bot
// TODO Remove once all repositories are public
if (!process.env.ATOM_ACCESS_TOKEN)
process.env.ATOM_ACCESS_TOKEN = '362295be4c5258d3f7b967bbabae662a455ca2a7';
// Executes an array of commands one by one.
function executeCommands(commands, done, index) {
index = (index == undefined ? 0 : index);
@@ -30,21 +32,25 @@ 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 = ['humanize-plus', 'nan', 'oniguruma', 'roaster'];
var npmPath = path.resolve(__dirname, '..', 'build', 'node_modules', '.bin', 'npm');
var npmFlags = ' --userconfig=' + path.resolve('.npmrc') + ' ';
var packagesToDedupe = ['fs-plus', 'humanize-plus', 'oniguruma', 'roaster', 'season'];
var echoNewLine = process.platform == 'win32' ? 'echo.' : 'echo';
var commands = [
'git submodule --quiet sync',
'git submodule --quiet update --recursive --init',
{command: 'npm install --quiet', options: {cwd: path.resolve(__dirname, '..', 'build'), ignoreStdout: true}},
{command: 'npm install --quiet', options: {cwd: apmVendorPath, ignoreStdout: true}},
{command: 'npm install --quiet ' + apmVendorPath, options: {cwd: apmInstallPath, ignoreStdout: true}},
{command: 'npm 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: 'npm' + npmFlags + 'install --quiet', options: {cwd: path.resolve(__dirname, '..', 'build'), ignoreStdout: true}},
{command: npmPath + npmFlags + 'install --quiet', options: {cwd: apmVendorPath, ignoreStdout: true}},
{command: npmPath + npmFlags + '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 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var path = require('path');
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var fs = require('fs');
var path = require('path');
+2 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var path = require('path');
var os = require('os');
@@ -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'],
+18
Ver Arquivo
@@ -0,0 +1,18 @@
@echo off
set USAGE=Usage: %0 source destination
if [%1] == [] (
echo %USAGE%
exit 1
)
if [%2] == [] (
echo %USAGE%
exit 2
)
:: rm -rf %2
if exist %2 rmdir %2 /s /q
:: cp -rf %1 %2
xcopy %1 %2 /e /h /c /i /y /r
+23
Ver Arquivo
@@ -0,0 +1,23 @@
@echo off
set USAGE=Usage: %0 source name-on-desktop
if [%1] == [] (
echo %USAGE%
exit 1
)
if [%2] == [] (
echo %USAGE%
exit 2
)
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\%2.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = %1 >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
+5 -5
Ver Arquivo
@@ -1,9 +1,9 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var path = require('path');
// node build/node_modules/grunt-cli/bin/grunt "$@"
var gruntPath = path.resolve(__dirname, '..', 'build', 'node_modules', 'grunt-cli', 'bin', 'grunt') + (process.platform === 'win32' ? '.cmd' : '');
var args = [gruntPath, '--gruntfile', path.resolve('build', 'Gruntfile.coffee')];
// node build/node_modules/.bin/grunt "$@"
var gruntPath = path.resolve(__dirname, '..', 'build', 'node_modules', '.bin', 'grunt') + (process.platform === 'win32' ? '.cmd' : '');
var args = ['--gruntfile', path.resolve('build', 'Gruntfile.coffee')];
args = args.concat(process.argv.slice(2));
cp.safeSpawn(process.execPath, args, process.exit);
cp.safeSpawn(gruntPath, args, process.exit);
+2 -3
Ver Arquivo
@@ -3,9 +3,8 @@
path = require 'path'
CommandInstaller = require '../src/command-installer'
callback = (error, sourcePath, destinationPath) ->
unless error?
console.log "#{sourcePath} intalled to #{destinationPath}"
callback = (error) ->
console.warn error.message if error?
CommandInstaller.installAtomCommand(path.resolve(__dirname, '..'), callback)
CommandInstaller.installApmCommand(path.resolve(__dirname, '..'), callback)
Arquivo executável
+31
Ver Arquivo
@@ -0,0 +1,31 @@
#!/bin/bash
# mkdeb version control-file-path deb-file-path
SCRIPT=`readlink -f "$0"`
ROOT=`readlink -f $(dirname $SCRIPT)/..`
cd $ROOT
VERSION="$1"
CONTROL_FILE="$2"
DESKTOP_FILE="$3"
ICON_FILE="$4"
DEB_PATH="$5"
TARGET_ROOT="`mktemp -d`"
TARGET="$TARGET_ROOT/atom-$VERSION-amd64"
mkdir -p "$TARGET/usr"
env INSTALL_PREFIX="$TARGET/usr" script/grunt install
mkdir -p "$TARGET/DEBIAN"
mv "$CONTROL_FILE" "$TARGET/DEBIAN/control"
mkdir -p "$TARGET/usr/share/applications"
mv "$DESKTOP_FILE" "$TARGET/usr/share/applications"
mkdir -p "$TARGET/usr/share/pixmaps"
cp "$ICON_FILE" "$TARGET/usr/share/pixmaps"
dpkg-deb -b "$TARGET"
mv "$TARGET_ROOT/atom-$VERSION-amd64.deb" "$DEB_PATH"
rm -rf $TARGET_ROOT
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var safeExec = require('./utils/child-process-wrapper.js').safeExec;
var path = require('path');
-32
Ver Arquivo
@@ -1,32 +0,0 @@
#!/usr/bin/env coffee
usage = """
Usage:
update-octicons PATH-TO-OCTICONS
"""
path = require 'path'
fs = require 'fs'
YAML = require 'js-yaml'
scriptPath = process.argv[1]
pathToOcticons = process.argv[2] ? path.join(process.env.HOME, 'github', 'octicons')
atomDir = path.resolve(scriptPath, "../../..")
unless fs.existsSync(pathToOcticons)
console.error(usage)
process.exit(1)
# Copy font-file
fontSrc = path.join(pathToOcticons, 'octicons', 'octicons.woff')
fontDest = path.join(atomDir, 'static', 'octicons.woff')
fs.createReadStream(fontSrc).pipe(fs.createWriteStream(fontDest))
# Update Octicon UTF codes
glyphsSrc = path.join(pathToOcticons, 'data', 'glyphs.yml')
octiconUtfDest = path.join atomDir, 'static', 'octicon-utf-codes.less'
output = []
for {css, code} in YAML.load(fs.readFileSync(glyphsSrc).toString())
output.push "@#{css}: \"\\#{code}\";"
fs.writeFileSync octiconUtfDest, "#{output.join('\n')}\n"
+63 -67
Ver Arquivo
@@ -1,35 +1,52 @@
{View, $, $$} = require '../src/space-pen-extensions'
path = require 'path'
_ = require 'underscore-plus'
{convertStackTrace} = require 'coffeestack'
{View, $, $$} = require '../src/space-pen-extensions'
sourceMaps = {}
formatStackTrace = (stackTrace) ->
formatStackTrace = (spec, message='', stackTrace) ->
return stackTrace unless stackTrace
jasminePath = require.resolve('../vendor/jasmine')
jasminePattern = new RegExp("\\(#{_.escapeRegExp(jasminePath)}:\\d+:\\d+\\)\\s*$")
jasminePattern = /^\s*at\s+.*\(?.*\/jasmine(-[^\/]*)?\.js:\d+:\d+\)?\s*$/
firstJasmineLinePattern = /^\s*at \/.*\/jasmine(-[^\/]*)?\.js:\d+:\d+\)?\s*$/
convertedLines = []
for line in stackTrace.split('\n')
convertedLines.push(line) unless jasminePattern.test(line)
break if firstJasmineLinePattern.test(line)
convertStackTrace(convertedLines.join('\n'), sourceMaps)
stackTrace = convertStackTrace(convertedLines.join('\n'), sourceMaps)
lines = stackTrace.split('\n')
# Remove first line of stack when it is the same as the error message
errorMatch = lines[0]?.match(/^Error: (.*)/)
lines.shift() if message.trim() is errorMatch?[1]?.trim()
for line, index in lines
# Remove prefix of lines matching: at [object Object].<anonymous> (path:1:2)
prefixMatch = line.match(/at \[object Object\]\.<anonymous> \(([^\)]+)\)/)
line = "at #{prefixMatch[1]}" if prefixMatch
# Relativize locations to spec directory
lines[index] = line.replace("at #{spec.specDirectory}#{path.sep}", 'at ')
lines = lines.map (line) -> line.trim()
lines.join('\n').trim()
module.exports =
class AtomReporter extends View
@content: ->
@div id: 'HTMLReporter', class: 'jasmine_reporter', =>
@div outlet: 'specPopup', class: "spec-popup"
@div class: 'spec-reporter', =>
@div outlet: "suites"
@div outlet: 'coreArea', =>
@div outlet: 'coreHeader', class: 'symbolHeader'
@ul outlet: 'coreSummary', class: 'symbolSummary list-unstyled'
@div outlet: 'bundledArea', =>
@div outlet: 'bundledHeader', class: 'symbolHeader'
@ul outlet: 'bundledSummary', class: 'symbolSummary list-unstyled'
@div outlet: 'userArea', =>
@div outlet: 'userHeader', class: 'symbolHeader'
@ul outlet: 'userSummary', class: 'symbolSummary list-unstyled'
@div outlet: "status", class: 'status', =>
@div outlet: 'coreArea', class: 'symbol-area', =>
@div outlet: 'coreHeader', class: 'symbol-header'
@ul outlet: 'coreSummary', class: 'symbol-summary list-unstyled'
@div outlet: 'bundledArea', class: 'symbol-area', =>
@div outlet: 'bundledHeader', class: 'symbol-header'
@ul outlet: 'bundledSummary', class: 'symbol-summary list-unstyled'
@div outlet: 'userArea', class: 'symbol-area', =>
@div outlet: 'userHeader', class: 'symbol-header'
@ul outlet: 'userSummary', class: 'symbol-summary list-unstyled'
@div outlet: "status", class: 'status alert alert-info', =>
@div outlet: "time", class: 'time'
@div outlet: "specCount", class: 'spec-count'
@div outlet: "message", class: 'message'
@@ -46,7 +63,7 @@ class AtomReporter extends View
reportRunnerStarting: (runner) ->
@handleEvents()
@startedAt = new Date()
@startedAt = Date.now()
specs = runner.specs()
@totalSpecCount = specs.length
@addSpecs(specs)
@@ -54,57 +71,29 @@ class AtomReporter extends View
reportRunnerResults: (runner) ->
@updateSpecCounts()
if @failedCount == 0
@message.text "Success!"
@status.addClass('alert-success').removeClass('alert-info') if @failedCount is 0
if @failedCount is 1
@message.text "#{@failedCount} failure"
else
@message.text "Game Over"
@message.text "#{@failedCount} failures"
reportSuiteResults: (suite) ->
reportSpecResults: (spec) ->
@completeSpecCount++
spec.endedAt = new Date().getTime()
spec.endedAt = Date.now()
@specComplete(spec)
@updateStatusView(spec)
reportSpecStarting: (spec) ->
@specStarted(spec)
specFilter: (spec) ->
globalFocusPriority = jasmine.getEnv().focusPriority
parent = spec.parentSuite ? spec.suite
if !globalFocusPriority
true
else if spec.focusPriority >= globalFocusPriority
true
else if not parent
false
else
@specFilter(parent)
handleEvents: ->
$(document).on "mouseover", ".spec-summary", ({currentTarget}) =>
element = $(currentTarget)
description = element.data("description")
return unless description
clearTimeout @timeoutId if @timeoutId?
@specPopup.show()
spec = _.find(window.timedSpecs, ({fullName}) -> description is fullName)
description = "#{description} #{spec.time}ms" if spec
@specPopup.text description
{left, top} = element.offset()
left += 20
top += 20
@specPopup.offset({left, top})
@timeoutId = setTimeout((=> @specPopup.hide()), 3000)
$(document).on "click", ".spec-toggle", ({currentTarget}) =>
element = $(currentTarget)
specFailures = element.parent().find('.spec-failures')
specFailures.toggle()
if specFailures.is(":visible") then element.text "\uf03d" else element.html "\uf03f"
element.toggleClass('folded')
false
updateSpecCounts: ->
@@ -116,7 +105,7 @@ class AtomReporter extends View
updateStatusView: (spec) ->
if @failedCount > 0
@status.addClass('failed') unless @status.hasClass('failed')
@status.addClass('alert-danger').removeClass('alert-info')
@updateSpecCounts()
@@ -124,7 +113,7 @@ class AtomReporter extends View
rootSuite = rootSuite.parentSuite while rootSuite.parentSuite
@message.text rootSuite.description
time = "#{Math.round((spec.endedAt - @startedAt.getTime()) / 10)}"
time = "#{Math.round((spec.endedAt - @startedAt) / 10)}"
time = "0#{time}" if time.length < 3
@time[0].textContent = "#{time[0...-2]}.#{time[-2..]}s"
@@ -146,15 +135,22 @@ class AtomReporter extends View
@userSummary.append symbol
if coreSpecs > 0
@coreHeader.text("Core Specs (#{coreSpecs}):")
@coreHeader.text("Core Specs (#{coreSpecs})")
else
@coreArea.hide()
if bundledPackageSpecs > 0
@bundledHeader.text("Bundled Package Specs (#{bundledPackageSpecs}):")
@bundledHeader.text("Bundled Package Specs (#{bundledPackageSpecs})")
else
@bundledArea.hide()
if userPackageSpecs > 0
@userHeader.text("User Package Specs (#{userPackageSpecs}):")
if coreSpecs is 0 and bundledPackageSpecs is 0
# Package specs being run, show a more descriptive label
{specDirectory} = specs[0]
packageFolderName = path.basename(path.dirname(specDirectory))
packageName = _.undasherize(_.uncamelcase(packageFolderName))
@userHeader.text("#{packageName} Specs")
else
@userHeader.text("User Package Specs (#{userPackageSpecs})")
else
@userArea.hide()
@@ -164,7 +160,7 @@ class AtomReporter extends View
specComplete: (spec) ->
specSummaryElement = $("#spec-summary-#{spec.id}")
specSummaryElement.removeClass('pending')
specSummaryElement.data("description", spec.getFullName())
specSummaryElement.setTooltip(title: spec.getFullName(), container: '.spec-reporter')
results = spec.results()
if results.skipped
@@ -185,11 +181,9 @@ class SuiteResultView extends View
@div class: 'suite', =>
@div outlet: 'description', class: 'description'
suite: null
initialize: (@suite) ->
@attr('id', "suite-view-#{@suite.id}")
@description.html @suite.description
@description.text(@suite.description)
attach: ->
(@parentSuiteView() or $('.results')).append this
@@ -206,20 +200,22 @@ class SuiteResultView extends View
class SpecResultView extends View
@content: ->
@div class: 'spec', =>
@div "\uf03d", class: 'spec-toggle'
@div class: 'spec-toggle'
@div outlet: 'description', class: 'description'
@div outlet: 'specFailures', class: 'spec-failures'
spec: null
initialize: (@spec) ->
@addClass("spec-view-#{@spec.id}")
@description.html @spec.description
description = @spec.description
description = "it #{description}" if description.indexOf('it ') isnt 0
@description.text(description)
for result in @spec.results().getItems() when not result.passed()
stackTrace = formatStackTrace(result.trace.stack)
stackTrace = formatStackTrace(@spec, result.message, result.trace.stack)
@specFailures.append $$ ->
@div result.message, class: 'resultMessage fail'
@div stackTrace, class: 'stackTrace' if stackTrace
@div result.message, class: 'result-message fail'
@pre stackTrace, class: 'stack-trace padded' if stackTrace
attach: ->
@parentSuiteView().append this
+246 -160
Ver Arquivo
@@ -1,6 +1,7 @@
{$, $$, fs, WorkspaceView} = require 'atom'
{$, $$, WorkspaceView} = require 'atom'
Exec = require('child_process').exec
path = require 'path'
Package = require '../src/package'
ThemeManager = require '../src/theme-manager'
describe "the `atom` global", ->
@@ -9,35 +10,28 @@ describe "the `atom` global", ->
describe "package lifecycle methods", ->
describe ".loadPackage(name)", ->
describe "when the package has deferred deserializers", ->
it "requires the package's main module if one of its deferred deserializers is referenced", ->
pack = atom.packages.loadPackage('package-with-activation-events')
spyOn(pack, 'activateStylesheets').andCallThrough()
expect(pack.mainModule).toBeNull()
object = atom.deserializers.deserialize({deserializer: 'Foo', data: 5})
expect(pack.mainModule).toBeDefined()
expect(object.constructor.name).toBe 'Foo'
expect(object.data).toBe 5
expect(pack.activateStylesheets).toHaveBeenCalled()
it "continues if the package has an invalid package.json", ->
spyOn(console, 'warn')
atom.config.set("core.disabledPackages", [])
expect(-> atom.packages.loadPackage("package-with-broken-package-json")).not.toThrow()
it "continues if the package has an invalid package.json", ->
spyOn(console, 'warn')
atom.config.set("core.disabledPackages", [])
expect(-> atom.packages.loadPackage("package-with-broken-package-json")).not.toThrow()
it "continues if the package has an invalid keymap", ->
atom.config.set("core.disabledPackages", [])
expect(-> atom.packages.loadPackage("package-with-broken-keymap")).not.toThrow()
it "continues if the package has an invalid keymap", ->
atom.config.set("core.disabledPackages", [])
expect(-> atom.packages.loadPackage("package-with-broken-keymap")).not.toThrow()
describe ".unloadPackage(name)", ->
describe "when the package is active", ->
it "throws an error", ->
pack = atom.packages.activatePackage('package-with-main')
expect(atom.packages.isPackageLoaded(pack.name)).toBeTruthy()
expect(atom.packages.isPackageActive(pack.name)).toBeTruthy()
expect( -> atom.packages.unloadPackage(pack.name)).toThrow()
expect(atom.packages.isPackageLoaded(pack.name)).toBeTruthy()
expect(atom.packages.isPackageActive(pack.name)).toBeTruthy()
pack = null
waitsForPromise ->
atom.packages.activatePackage('package-with-main').then (p) -> pack = p
runs ->
expect(atom.packages.isPackageLoaded(pack.name)).toBeTruthy()
expect(atom.packages.isPackageActive(pack.name)).toBeTruthy()
expect( -> atom.packages.unloadPackage(pack.name)).toThrow()
expect(atom.packages.isPackageLoaded(pack.name)).toBeTruthy()
expect(atom.packages.isPackageActive(pack.name)).toBeTruthy()
describe "when the package is not loaded", ->
it "throws an error", ->
@@ -54,44 +48,69 @@ describe "the `atom` global", ->
describe ".activatePackage(id)", ->
describe "atom packages", ->
describe "when called multiple times", ->
it "it only calls activate on the package once", ->
spyOn(Package.prototype, 'activateNow').andCallThrough()
atom.packages.activatePackage('package-with-index')
atom.packages.activatePackage('package-with-index')
waitsForPromise ->
atom.packages.activatePackage('package-with-index')
runs ->
expect(Package.prototype.activateNow.callCount).toBe 1
describe "when the package has a main module", ->
describe "when the metadata specifies a main module path˜", ->
it "requires the module at the specified path", ->
mainModule = require('./fixtures/packages/package-with-main/main-module')
spyOn(mainModule, 'activate')
pack = atom.packages.activatePackage('package-with-main')
expect(mainModule.activate).toHaveBeenCalled()
expect(pack.mainModule).toBe mainModule
pack = null
waitsForPromise ->
atom.packages.activatePackage('package-with-main').then (p) -> pack = p
runs ->
expect(mainModule.activate).toHaveBeenCalled()
expect(pack.mainModule).toBe mainModule
describe "when the metadata does not specify a main module", ->
it "requires index.coffee", ->
indexModule = require('./fixtures/packages/package-with-index/index')
spyOn(indexModule, 'activate')
pack = atom.packages.activatePackage('package-with-index')
expect(indexModule.activate).toHaveBeenCalled()
expect(pack.mainModule).toBe indexModule
pack = null
waitsForPromise ->
atom.packages.activatePackage('package-with-index').then (p) -> pack = p
runs ->
expect(indexModule.activate).toHaveBeenCalled()
expect(pack.mainModule).toBe indexModule
it "assigns config defaults from the module", ->
expect(atom.config.get('package-with-config-defaults.numbers.one')).toBeUndefined()
atom.packages.activatePackage('package-with-config-defaults')
expect(atom.config.get('package-with-config-defaults.numbers.one')).toBe 1
expect(atom.config.get('package-with-config-defaults.numbers.two')).toBe 2
waitsForPromise ->
atom.packages.activatePackage('package-with-config-defaults')
runs ->
expect(atom.config.get('package-with-config-defaults.numbers.one')).toBe 1
expect(atom.config.get('package-with-config-defaults.numbers.two')).toBe 2
describe "when the package metadata includes activation events", ->
[mainModule, pack] = []
[mainModule, promise] = []
beforeEach ->
mainModule = require './fixtures/packages/package-with-activation-events/index'
spyOn(mainModule, 'activate').andCallThrough()
AtomPackage = require '../src/atom-package'
spyOn(AtomPackage.prototype, 'requireMainModule').andCallThrough()
pack = atom.packages.activatePackage('package-with-activation-events')
spyOn(Package.prototype, 'requireMainModule').andCallThrough()
promise = atom.packages.activatePackage('package-with-activation-events')
it "defers requiring/activating the main module until an activation event bubbles to the root view", ->
expect(pack.requireMainModule).not.toHaveBeenCalled()
expect(mainModule.activate).not.toHaveBeenCalled()
expect(promise.isFulfilled()).not.toBeTruthy()
atom.workspaceView.trigger 'activation-event'
expect(mainModule.activate).toHaveBeenCalled()
waitsForPromise ->
promise
it "triggers the activation event on all handlers registered during activation", ->
atom.workspaceView.openSync()
@@ -107,6 +126,16 @@ describe "the `atom` global", ->
expect(eventHandler.callCount).toBe 2
expect(mainModule.activate.callCount).toBe 1
it "activates the package immediately when the events are empty", ->
mainModule = require './fixtures/packages/package-with-empty-activation-events/index'
spyOn(mainModule, 'activate').andCallThrough()
waitsForPromise ->
atom.packages.activatePackage('package-with-empty-activation-events')
runs ->
expect(mainModule.activate.callCount).toBe 1
describe "when the package has no main module", ->
it "does not throw an exception", ->
spyOn(console, "error")
@@ -116,13 +145,17 @@ describe "the `atom` global", ->
expect(console.warn).not.toHaveBeenCalled()
it "passes the activate method the package's previously serialized state if it exists", ->
pack = atom.packages.activatePackage("package-with-serialization")
expect(pack.mainModule.someNumber).not.toBe 77
pack.mainModule.someNumber = 77
atom.packages.deactivatePackage("package-with-serialization")
spyOn(pack.mainModule, 'activate').andCallThrough()
atom.packages.activatePackage("package-with-serialization")
expect(pack.mainModule.activate).toHaveBeenCalledWith({someNumber: 77})
pack = null
waitsForPromise ->
atom.packages.activatePackage("package-with-serialization").then (p) -> pack = p
runs ->
expect(pack.mainModule.someNumber).not.toBe 77
pack.mainModule.someNumber = 77
atom.packages.deactivatePackage("package-with-serialization")
spyOn(pack.mainModule, 'activate').andCallThrough()
atom.packages.activatePackage("package-with-serialization")
expect(pack.mainModule.activate).toHaveBeenCalledWith({someNumber: 77})
it "logs warning instead of throwing an exception if the package fails to load", ->
atom.config.set("core.disabledPackages", [])
@@ -137,28 +170,28 @@ describe "the `atom` global", ->
element2 = $$ -> @div class: 'test-2'
element3 = $$ -> @div class: 'test-3'
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)).toHaveLength 0
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element2)).toHaveLength 0
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element3)).toHaveLength 0
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)).toHaveLength 0
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element2)).toHaveLength 0
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element3)).toHaveLength 0
atom.packages.activatePackage("package-with-keymaps")
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)[0].command).toBe "test-1"
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element2)[0].command).toBe "test-2"
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element3)).toHaveLength 0
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)[0].command).toBe "test-1"
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element2)[0].command).toBe "test-2"
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element3)).toHaveLength 0
describe "when the metadata contains a 'keymaps' manifest", ->
it "loads only the keymaps specified by the manifest, in the specified order", ->
element1 = $$ -> @div class: 'test-1'
element3 = $$ -> @div class: 'test-3'
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)).toHaveLength 0
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)).toHaveLength 0
atom.packages.activatePackage("package-with-keymaps-manifest")
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)[0].command).toBe 'keymap-1'
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-n', element1)[0].command).toBe 'keymap-2'
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-y', element3)).toHaveLength 0
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', element1)[0].command).toBe 'keymap-1'
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-n', element1)[0].command).toBe 'keymap-2'
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-y', element3)).toHaveLength 0
describe "menu loading", ->
beforeEach ->
@@ -239,116 +272,155 @@ describe "the `atom` global", ->
describe "grammar loading", ->
it "loads the package's grammars", ->
atom.packages.activatePackage('package-with-grammars')
expect(atom.syntax.selectGrammar('a.alot').name).toBe 'Alot'
expect(atom.syntax.selectGrammar('a.alittle').name).toBe 'Alittle'
waitsForPromise ->
atom.packages.activatePackage('package-with-grammars')
runs ->
expect(atom.syntax.selectGrammar('a.alot').name).toBe 'Alot'
expect(atom.syntax.selectGrammar('a.alittle').name).toBe 'Alittle'
describe "scoped-property loading", ->
it "loads the scoped properties", ->
atom.packages.activatePackage("package-with-scoped-properties")
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
describe "textmate packages", ->
it "loads the package's grammars", ->
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Null Grammar"
atom.packages.activatePackage('language-ruby', sync: true)
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Ruby"
it "translates the package's scoped properties to Atom terms", ->
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
atom.packages.activatePackage('language-ruby', sync: true)
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBe '# '
describe "when the package has no grammars but does have preferences", ->
it "loads the package's preferences as scoped properties", ->
jasmine.unspy(window, 'setTimeout')
spyOn(atom.syntax, 'addProperties').andCallThrough()
atom.packages.activatePackage('package-with-preferences-tmbundle')
waitsFor ->
atom.syntax.addProperties.callCount > 0
waitsForPromise ->
atom.packages.activatePackage("package-with-scoped-properties")
runs ->
expect(atom.syntax.getProperty(['.source.pref'], 'editor.increaseIndentPattern')).toBe '^abc$'
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
describe "converted textmate packages", ->
it "loads the package's grammars", ->
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Null Grammar"
waitsForPromise ->
atom.packages.activatePackage('language-ruby')
runs ->
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Ruby"
it "loads the translated scoped properties", ->
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
waitsForPromise ->
atom.packages.activatePackage('language-ruby')
runs ->
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBe '# '
describe ".deactivatePackage(id)", ->
describe "atom packages", ->
it "calls `deactivate` on the package's main module if activate was successful", ->
pack = atom.packages.activatePackage("package-with-deactivate")
expect(atom.packages.isPackageActive("package-with-deactivate")).toBeTruthy()
spyOn(pack.mainModule, 'deactivate').andCallThrough()
pack = null
waitsForPromise ->
atom.packages.activatePackage("package-with-deactivate").then (p) -> pack = p
atom.packages.deactivatePackage("package-with-deactivate")
expect(pack.mainModule.deactivate).toHaveBeenCalled()
expect(atom.packages.isPackageActive("package-with-module")).toBeFalsy()
runs ->
expect(atom.packages.isPackageActive("package-with-deactivate")).toBeTruthy()
spyOn(pack.mainModule, 'deactivate').andCallThrough()
spyOn(console, 'warn')
badPack = atom.packages.activatePackage("package-that-throws-on-activate")
expect(atom.packages.isPackageActive("package-that-throws-on-activate")).toBeTruthy()
spyOn(badPack.mainModule, 'deactivate').andCallThrough()
atom.packages.deactivatePackage("package-with-deactivate")
expect(pack.mainModule.deactivate).toHaveBeenCalled()
expect(atom.packages.isPackageActive("package-with-module")).toBeFalsy()
atom.packages.deactivatePackage("package-that-throws-on-activate")
expect(badPack.mainModule.deactivate).not.toHaveBeenCalled()
expect(atom.packages.isPackageActive("package-that-throws-on-activate")).toBeFalsy()
spyOn(console, 'warn')
badPack = null
waitsForPromise ->
atom.packages.activatePackage("package-that-throws-on-activate").then (p) -> badPack = p
runs ->
expect(atom.packages.isPackageActive("package-that-throws-on-activate")).toBeTruthy()
spyOn(badPack.mainModule, 'deactivate').andCallThrough()
atom.packages.deactivatePackage("package-that-throws-on-activate")
expect(badPack.mainModule.deactivate).not.toHaveBeenCalled()
expect(atom.packages.isPackageActive("package-that-throws-on-activate")).toBeFalsy()
it "does not serialize packages that have not been activated called on their main module", ->
spyOn(console, 'warn')
badPack = atom.packages.activatePackage("package-that-throws-on-activate")
spyOn(badPack.mainModule, 'serialize').andCallThrough()
badPack = null
waitsForPromise ->
atom.packages.activatePackage("package-that-throws-on-activate").then (p) -> badPack = p
atom.packages.deactivatePackage("package-that-throws-on-activate")
expect(badPack.mainModule.serialize).not.toHaveBeenCalled()
runs ->
spyOn(badPack.mainModule, 'serialize').andCallThrough()
atom.packages.deactivatePackage("package-that-throws-on-activate")
expect(badPack.mainModule.serialize).not.toHaveBeenCalled()
it "absorbs exceptions that are thrown by the package module's serialize methods", ->
spyOn(console, 'error')
atom.packages.activatePackage('package-with-serialize-error', immediate: true)
atom.packages.activatePackage('package-with-serialization', immediate: true)
atom.packages.deactivatePackages()
expect(atom.packages.packageStates['package-with-serialize-error']).toBeUndefined()
expect(atom.packages.packageStates['package-with-serialization']).toEqual someNumber: 1
expect(console.error).toHaveBeenCalled()
waitsForPromise ->
atom.packages.activatePackage('package-with-serialize-error')
waitsForPromise ->
atom.packages.activatePackage('package-with-serialization')
runs ->
atom.packages.deactivatePackages()
expect(atom.packages.packageStates['package-with-serialize-error']).toBeUndefined()
expect(atom.packages.packageStates['package-with-serialization']).toEqual someNumber: 1
expect(console.error).toHaveBeenCalled()
it "removes the package's grammars", ->
atom.packages.activatePackage('package-with-grammars')
atom.packages.deactivatePackage('package-with-grammars')
expect(atom.syntax.selectGrammar('a.alot').name).toBe 'Null Grammar'
expect(atom.syntax.selectGrammar('a.alittle').name).toBe 'Null Grammar'
waitsForPromise ->
atom.packages.activatePackage('package-with-grammars')
runs ->
atom.packages.deactivatePackage('package-with-grammars')
expect(atom.syntax.selectGrammar('a.alot').name).toBe 'Null Grammar'
expect(atom.syntax.selectGrammar('a.alittle').name).toBe 'Null Grammar'
it "removes the package's keymaps", ->
atom.packages.activatePackage('package-with-keymaps')
atom.packages.deactivatePackage('package-with-keymaps')
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', $$ -> @div class: 'test-1')).toHaveLength 0
expect(atom.keymap.keyBindingsForKeystrokeMatchingElement('ctrl-z', $$ -> @div class: 'test-2')).toHaveLength 0
waitsForPromise ->
atom.packages.activatePackage('package-with-keymaps')
runs ->
atom.packages.deactivatePackage('package-with-keymaps')
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', $$ -> @div class: 'test-1')).toHaveLength 0
expect(atom.keymaps.keyBindingsForKeystrokeMatchingElement('ctrl-z', $$ -> @div class: 'test-2')).toHaveLength 0
it "removes the package's stylesheets", ->
atom.packages.activatePackage('package-with-stylesheets')
atom.packages.deactivatePackage('package-with-stylesheets')
one = require.resolve("./fixtures/packages/package-with-stylesheets-manifest/stylesheets/1.css")
two = require.resolve("./fixtures/packages/package-with-stylesheets-manifest/stylesheets/2.less")
three = require.resolve("./fixtures/packages/package-with-stylesheets-manifest/stylesheets/3.css")
expect(atom.themes.stylesheetElementForId(one)).not.toExist()
expect(atom.themes.stylesheetElementForId(two)).not.toExist()
expect(atom.themes.stylesheetElementForId(three)).not.toExist()
waitsForPromise ->
atom.packages.activatePackage('package-with-stylesheets')
runs ->
atom.packages.deactivatePackage('package-with-stylesheets')
one = require.resolve("./fixtures/packages/package-with-stylesheets-manifest/stylesheets/1.css")
two = require.resolve("./fixtures/packages/package-with-stylesheets-manifest/stylesheets/2.less")
three = require.resolve("./fixtures/packages/package-with-stylesheets-manifest/stylesheets/3.css")
expect(atom.themes.stylesheetElementForId(one)).not.toExist()
expect(atom.themes.stylesheetElementForId(two)).not.toExist()
expect(atom.themes.stylesheetElementForId(three)).not.toExist()
it "removes the package's scoped-properties", ->
atom.packages.activatePackage("package-with-scoped-properties")
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
atom.packages.deactivatePackage("package-with-scoped-properties")
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBeUndefined()
waitsForPromise ->
atom.packages.activatePackage("package-with-scoped-properties")
runs ->
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
atom.packages.deactivatePackage("package-with-scoped-properties")
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBeUndefined()
describe "textmate packages", ->
it "removes the package's grammars", ->
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Null Grammar"
atom.packages.activatePackage('language-ruby', sync: true)
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Ruby"
atom.packages.deactivatePackage('language-ruby')
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Null Grammar"
waitsForPromise ->
atom.packages.activatePackage('language-ruby')
runs ->
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Ruby"
atom.packages.deactivatePackage('language-ruby')
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Null Grammar"
it "removes the package's scoped properties", ->
atom.packages.activatePackage('language-ruby', sync: true)
atom.packages.deactivatePackage('language-ruby')
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
waitsForPromise ->
atom.packages.activatePackage('language-ruby')
runs ->
atom.packages.deactivatePackage('language-ruby')
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
describe ".activate()", ->
packageActivator = null
@@ -382,7 +454,7 @@ describe "the `atom` global", ->
themes = themeActivator.mostRecentCall.args[0]
expect(['theme']).toContain(theme.getType()) for theme in themes
describe ".en/disablePackage()", ->
describe ".enablePackage() and disablePackage()", ->
describe "with packages", ->
it ".enablePackage() enables a disabled package", ->
packageName = 'package-with-main'
@@ -391,28 +463,36 @@ describe "the `atom` global", ->
expect(atom.config.get('core.disabledPackages')).toContain packageName
pack = atom.packages.enablePackage(packageName)
loadedPackages = atom.packages.getLoadedPackages()
activatedPackages = atom.packages.getActivePackages()
expect(loadedPackages).toContain(pack)
expect(activatedPackages).toContain(pack)
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
activatedPackages = null
waitsFor ->
activatedPackages = atom.packages.getActivePackages()
activatedPackages.length > 0
runs ->
expect(loadedPackages).toContain(pack)
expect(activatedPackages).toContain(pack)
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
it ".disablePackage() disables an enabled package", ->
packageName = 'package-with-main'
atom.packages.activatePackage(packageName)
atom.packages.observeDisabledPackages()
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
waitsForPromise ->
atom.packages.activatePackage(packageName)
pack = atom.packages.disablePackage(packageName)
runs ->
atom.packages.observeDisabledPackages()
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
activatedPackages = atom.packages.getActivePackages()
expect(activatedPackages).not.toContain(pack)
expect(atom.config.get('core.disabledPackages')).toContain packageName
pack = atom.packages.disablePackage(packageName)
activatedPackages = atom.packages.getActivePackages()
expect(activatedPackages).not.toContain(pack)
expect(atom.config.get('core.disabledPackages')).toContain packageName
describe "with themes", ->
beforeEach ->
atom.themes.activateThemes()
waitsForPromise ->
atom.themes.activateThemes()
afterEach ->
atom.themes.deactivateThemes()
@@ -426,18 +506,24 @@ describe "the `atom` global", ->
# enabling of theme
pack = atom.packages.enablePackage(packageName)
activatedPackages = atom.packages.getActivePackages()
expect(activatedPackages).toContain(pack)
expect(atom.config.get('core.themes')).toContain packageName
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
# disabling of theme
pack = atom.packages.disablePackage(packageName)
activatedPackages = atom.packages.getActivePackages()
expect(activatedPackages).not.toContain(pack)
expect(atom.config.get('core.themes')).not.toContain packageName
expect(atom.config.get('core.themes')).not.toContain packageName
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
activatedPackages = null
waitsFor ->
activatedPackages = atom.packages.getActivePackages()
activatedPackages.length > 0
runs ->
expect(activatedPackages).toContain(pack)
expect(atom.config.get('core.themes')).toContain packageName
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
# disabling of theme
pack = atom.packages.disablePackage(packageName)
activatedPackages = atom.packages.getActivePackages()
expect(activatedPackages).not.toContain(pack)
expect(atom.config.get('core.themes')).not.toContain packageName
expect(atom.config.get('core.themes')).not.toContain packageName
expect(atom.config.get('core.disabledPackages')).not.toContain packageName
describe ".isReleasedVersion()", ->
it "returns false if the version is a SHA and true otherwise", ->
+12
Ver Arquivo
@@ -0,0 +1,12 @@
describe "Clipboard", ->
describe "write(text, metadata) and read()", ->
it "writes and reads text to/from the native clipboard", ->
expect(atom.clipboard.read()).toBe 'initial clipboard content'
atom.clipboard.write('next')
expect(atom.clipboard.read()).toBe 'next'
it "returns metadata if the item on the native clipboard matches the last written item", ->
atom.clipboard.write('next', {meta: 'data'})
expect(atom.clipboard.read()).toBe 'next'
expect(atom.clipboard.readWithMetadata().text).toBe 'next'
expect(atom.clipboard.readWithMetadata().metadata).toEqual {meta: 'data'}
+15 -17
Ver Arquivo
@@ -1,36 +1,34 @@
{fs} = require 'atom'
path = require 'path'
fs = require 'fs-plus'
temp = require 'temp'
installer = require '../src/command-installer'
describe "install(commandPath, callback)", ->
directory = path.join(temp.dir, 'install-atom-command', 'atom')
commandPath = path.join(directory, 'source')
destinationPath = path.join(directory, 'bin', 'source')
commandFilePath = temp.openSync("atom-command").path
commandName = path.basename(commandFilePath)
installationPath = temp.mkdirSync("atom-bin")
installationFilePath = path.join(installationPath, commandName)
beforeEach ->
spyOn(installer, 'findInstallDirectory').andCallFake (callback) ->
callback(directory)
fs.removeSync(directory) if fs.existsSync(directory)
fs.chmodSync(commandFilePath, '755')
spyOn(installer, 'getInstallDirectory').andReturn installationPath
describe "on #darwin", ->
it "symlinks the command and makes it executable", ->
fs.writeFileSync(commandPath, 'test')
expect(fs.isFileSync(commandPath)).toBeTruthy()
expect(fs.isExecutableSync(commandPath)).toBeFalsy()
expect(fs.isFileSync(destinationPath)).toBeFalsy()
expect(fs.isFileSync(commandFilePath)).toBeTruthy()
expect(fs.isFileSync(installationFilePath)).toBeFalsy()
installDone = false
installError = null
installer.install commandPath, (error) ->
installer.install commandFilePath, false, (error) ->
installDone = true
installError = error
waitsFor -> installDone
waitsFor ->
installDone
runs ->
expect(installError).toBeNull()
expect(fs.isFileSync(destinationPath)).toBeTruthy()
expect(fs.realpathSync(destinationPath)).toBe fs.realpathSync(commandPath)
expect(fs.isExecutableSync(destinationPath)).toBeTruthy()
expect(fs.isFileSync(installationFilePath)).toBeTruthy()
expect(fs.realpathSync(installationFilePath)).toBe fs.realpathSync(commandFilePath)
expect(fs.isExecutableSync(installationFilePath)).toBeTruthy()
+27 -5
Ver Arquivo
@@ -1,7 +1,7 @@
{fs} = require 'atom'
path = require 'path'
temp = require 'temp'
CSON = require 'season'
fs = require 'fs-plus'
describe "Config", ->
dotAtomPath = path.join(temp.dir, 'dot-atom-dir')
@@ -63,6 +63,19 @@ describe "Config", ->
atom.config.toggle('foo.a')
expect(atom.config.get('foo.a')).toBe false
describe ".restoreDefault(keyPath)", ->
it "sets the value of the key path to its default", ->
atom.config.setDefaults('a', b: 3)
atom.config.set('a.b', 4)
expect(atom.config.get('a.b')).toBe 4
atom.config.restoreDefault('a.b')
expect(atom.config.get('a.b')).toBe 3
atom.config.set('a.c', 5)
expect(atom.config.get('a.c')).toBe 5
atom.config.restoreDefault('a.c')
expect(atom.config.get('a.c')).toBeUndefined()
describe ".pushAtKeyPath(keyPath, value)", ->
it "pushes the given value to the array at the key path and updates observers", ->
atom.config.set("foo.bar.baz", ["a"])
@@ -157,6 +170,13 @@ describe "Config", ->
expect(atom.config.get("foo.quux.x")).toBe 0
expect(atom.config.get("foo.quux.y")).toBe 1
it "emits an updated event", ->
updatedCallback = jasmine.createSpy('updated')
atom.config.observe('foo.bar.baz.a', callNow: false, updatedCallback)
expect(updatedCallback.callCount).toBe 0
atom.config.setDefaults("foo.bar.baz", a: 2)
expect(updatedCallback.callCount).toBe 1
describe ".observe(keyPath)", ->
[observeHandler, observeSubscription] = []
@@ -204,7 +224,7 @@ describe "Config", ->
expect(fs.existsSync(atom.config.configDirPath)).toBeFalsy()
afterEach ->
fs.removeSync(dotAtomPath) if fs.existsSync(dotAtomPath)
fs.removeSync(dotAtomPath)
describe "when the configDirPath doesn't exist", ->
it "copies the contents of dot-atom to ~/.atom", ->
@@ -218,8 +238,10 @@ describe "Config", ->
runs ->
expect(fs.existsSync(atom.config.configDirPath)).toBeTruthy()
expect(fs.existsSync(path.join(atom.config.configDirPath, 'packages'))).toBeTruthy()
expect(fs.existsSync(path.join(atom.config.configDirPath, 'snippets'))).toBeTruthy()
expect(fs.isFileSync(path.join(atom.config.configDirPath, 'snippets.cson'))).toBeTruthy()
expect(fs.isFileSync(path.join(atom.config.configDirPath, 'config.cson'))).toBeTruthy()
expect(fs.isFileSync(path.join(atom.config.configDirPath, 'init.coffee'))).toBeTruthy()
expect(fs.isFileSync(path.join(atom.config.configDirPath, 'styles.less'))).toBeTruthy()
describe ".loadUserConfig()", ->
beforeEach ->
@@ -228,7 +250,7 @@ describe "Config", ->
expect(fs.existsSync(atom.config.configDirPath)).toBeFalsy()
afterEach ->
fs.removeSync(dotAtomPath) if fs.existsSync(dotAtomPath)
fs.removeSync(dotAtomPath)
describe "when the config file contains valid cson", ->
beforeEach ->
@@ -271,7 +293,7 @@ describe "Config", ->
afterEach ->
atom.config.unobserveUserConfig()
fs.removeSync(dotAtomPath) if fs.existsSync(dotAtomPath)
fs.removeSync(dotAtomPath)
describe "when the config file changes to contain valid cson", ->
it "updates the config data", ->
-138
Ver Arquivo
@@ -1,138 +0,0 @@
Directory = require '../src/directory'
{fs} = require 'atom'
path = require 'path'
describe "Directory", ->
directory = null
beforeEach ->
directory = new Directory(path.join(__dirname, 'fixtures'))
afterEach ->
directory.off()
describe "when the contents of the directory change on disk", ->
temporaryFilePath = null
beforeEach ->
temporaryFilePath = path.join(__dirname, 'fixtures', 'temporary')
fs.removeSync(temporaryFilePath) if fs.existsSync(temporaryFilePath)
afterEach ->
fs.removeSync(temporaryFilePath) if fs.existsSync(temporaryFilePath)
it "triggers 'contents-changed' event handlers", ->
changeHandler = null
runs ->
changeHandler = jasmine.createSpy('changeHandler')
directory.on 'contents-changed', changeHandler
fs.writeFileSync(temporaryFilePath, '')
waitsFor "first change", -> changeHandler.callCount > 0
runs ->
changeHandler.reset()
fs.removeSync(temporaryFilePath)
waitsFor "second change", -> changeHandler.callCount > 0
describe "when the directory unsubscribes from events", ->
temporaryFilePath = null
beforeEach ->
temporaryFilePath = path.join(directory.path, 'temporary')
fs.removeSync(temporaryFilePath) if fs.existsSync(temporaryFilePath)
afterEach ->
fs.removeSync(temporaryFilePath) if fs.existsSync(temporaryFilePath)
it "no longer triggers events", ->
changeHandler = null
runs ->
changeHandler = jasmine.createSpy('changeHandler')
directory.on 'contents-changed', changeHandler
fs.writeFileSync(temporaryFilePath, '')
waitsFor "change event", -> changeHandler.callCount > 0
runs ->
changeHandler.reset()
directory.off()
waits 20
runs -> fs.removeSync(temporaryFilePath)
waits 20
runs -> expect(changeHandler.callCount).toBe 0
describe "on #darwin or #linux", ->
it "includes symlink information about entries", ->
entries = directory.getEntriesSync()
for entry in entries
name = entry.getBaseName()
if name is 'symlink-to-dir' or name is 'symlink-to-file'
expect(entry.symlink).toBeTruthy()
else
expect(entry.symlink).toBeFalsy()
callback = jasmine.createSpy('getEntries')
directory.getEntries(callback)
waitsFor -> callback.callCount is 1
runs ->
entries = callback.mostRecentCall.args[1]
for entry in entries
name = entry.getBaseName()
if name is 'symlink-to-dir' or name is 'symlink-to-file'
expect(entry.symlink).toBeTruthy()
else
expect(entry.symlink).toBeFalsy()
describe ".relativize(path)", ->
describe "on #darwin or #linux", ->
it "returns a relative path based on the directory's path", ->
absolutePath = directory.getPath()
expect(directory.relativize(absolutePath)).toBe ''
expect(directory.relativize(path.join(absolutePath, "b"))).toBe "b"
expect(directory.relativize(path.join(absolutePath, "b/file.coffee"))).toBe "b/file.coffee"
expect(directory.relativize(path.join(absolutePath, "file.coffee"))).toBe "file.coffee"
it "returns a relative path based on the directory's symlinked source path", ->
symlinkPath = path.join(__dirname, 'fixtures', 'symlink-to-dir')
symlinkDirectory = new Directory(symlinkPath)
realFilePath = require.resolve('./fixtures/dir/a')
expect(symlinkDirectory.relativize(symlinkPath)).toBe ''
expect(symlinkDirectory.relativize(realFilePath)).toBe 'a'
it "returns the full path if the directory's path is not a prefix of the path", ->
expect(directory.relativize('/not/relative')).toBe '/not/relative'
describe "on #win32", ->
it "returns a relative path based on the directory's path", ->
absolutePath = directory.getPath()
expect(directory.relativize(absolutePath)).toBe ''
expect(directory.relativize(path.join(absolutePath, "b"))).toBe "b"
expect(directory.relativize(path.join(absolutePath, "b/file.coffee"))).toBe "b\\file.coffee"
expect(directory.relativize(path.join(absolutePath, "file.coffee"))).toBe "file.coffee"
it "returns the full path if the directory's path is not a prefix of the path", ->
expect(directory.relativize('/not/relative')).toBe "\\not\\relative"
describe ".contains(path)", ->
it "returns true if the path is a child of the directory's path", ->
absolutePath = directory.getPath()
expect(directory.contains(path.join(absolutePath, "b"))).toBe true
expect(directory.contains(path.join(absolutePath, "b", "file.coffee"))).toBe true
expect(directory.contains(path.join(absolutePath, "file.coffee"))).toBe true
it "returns false if the directory's path is not a prefix of the path", ->
expect(directory.contains('/not/relative')).toBe false
describe "on #darwin or #linux", ->
it "returns true if the path is a child of the directory's symlinked source path", ->
symlinkPath = path.join(__dirname, 'fixtures', 'symlink-to-dir')
symlinkDirectory = new Directory(symlinkPath)
realFilePath = require.resolve('./fixtures/dir/a')
expect(symlinkDirectory.contains(realFilePath)).toBe true
+55 -22
Ver Arquivo
@@ -1,21 +1,24 @@
DisplayBuffer = require '../src/display-buffer'
{_} = require 'atom'
_ = require 'underscore-plus'
describe "DisplayBuffer", ->
[displayBuffer, buffer, changeHandler, tabLength] = []
beforeEach ->
tabLength = 2
atom.packages.activatePackage('language-javascript', sync: true)
buffer = atom.project.bufferForPathSync('sample.js')
displayBuffer = new DisplayBuffer({buffer, tabLength})
changeHandler = jasmine.createSpy 'changeHandler'
displayBuffer.on 'changed', changeHandler
waitsForPromise ->
atom.packages.activatePackage('language-javascript')
afterEach ->
displayBuffer.destroy()
buffer.release()
describe ".copy()", ->
describe "::copy()", ->
it "creates a new DisplayBuffer with the same initial state", ->
marker1 = displayBuffer.markBufferRange([[1, 2], [3, 4]], id: 1)
marker2 = displayBuffer.markBufferRange([[2, 3], [4, 5]], isReversed: true, id: 2)
@@ -34,7 +37,7 @@ describe "DisplayBuffer", ->
expect(displayBuffer2.isFoldedAtBufferRow(3)).toBeTruthy()
# can diverge from origin
displayBuffer2.destroyFoldsContainingBufferRow(3)
displayBuffer2.unfoldBufferRow(3)
expect(displayBuffer2.isFoldedAtBufferRow(3)).not.toBe displayBuffer.isFoldedAtBufferRow(3)
describe "when the buffer changes", ->
@@ -197,6 +200,12 @@ describe "DisplayBuffer", ->
expect(tokensText displayBuffer.lineForRow(12).tokens).toBe 'sort(left).concat(pivot).concat(sort(rig'
expect(changeHandler).toHaveBeenCalledWith(start: 0, end: 15, screenDelta: 3, bufferDelta: 0)
it "only allows positive widths to be assigned", ->
displayBuffer.setEditorWidthInChars(0)
expect(displayBuffer.editorWidthInChars).not.toBe 0
displayBuffer.setEditorWidthInChars(-1)
expect(displayBuffer.editorWidthInChars).not.toBe -1
describe "primitive folding", ->
beforeEach ->
displayBuffer.destroy()
@@ -457,6 +466,12 @@ describe "DisplayBuffer", ->
expect(changeHandler).toHaveBeenCalledWith(start: 3, end: 3, screenDelta: 1, bufferDelta: 1)
describe "when the change starts at the beginning of a fold but does not extend to the end (regression)", ->
it "preserves a proper mapping between buffer and screen coordinates", ->
expect(displayBuffer.screenPositionForBufferPosition([8, 0])).toEqual [4, 0]
buffer.setTextInRange([[2, 0], [3, 0]], "\n")
expect(displayBuffer.screenPositionForBufferPosition([8, 0])).toEqual [4, 0]
describe "position translation", ->
it "translates positions to account for folded lines and characters and the placeholder", ->
fold = displayBuffer.createFold(4, 7)
@@ -492,7 +507,7 @@ describe "DisplayBuffer", ->
expect(displayBuffer.bufferPositionForScreenPosition([5, 0])).toEqual [5, 0]
expect(displayBuffer.bufferPositionForScreenPosition([9, 2])).toEqual [9, 2]
describe ".destroyFoldsContainingBufferRow(row)", ->
describe ".unfoldBufferRow(row)", ->
it "destroys all folds containing the given row", ->
displayBuffer.createFold(2, 4)
displayBuffer.createFold(2, 6)
@@ -503,14 +518,25 @@ describe "DisplayBuffer", ->
expect(displayBuffer.lineForRow(1).text).toBe '1'
expect(displayBuffer.lineForRow(2).text).toBe '10'
displayBuffer.destroyFoldsContainingBufferRow(2)
displayBuffer.unfoldBufferRow(2)
expect(displayBuffer.lineForRow(1).text).toBe '1'
expect(displayBuffer.lineForRow(2).text).toBe '2'
expect(displayBuffer.lineForRow(7).fold).toBeDefined()
expect(displayBuffer.lineForRow(8).text).toMatch /^9-+/
expect(displayBuffer.lineForRow(10).fold).toBeDefined()
describe ".clipScreenPosition(screenPosition, wrapBeyondNewlines: false, wrapAtSoftNewlines: false, skipAtomicTokens: false)", ->
describe ".outermostFoldsInBufferRowRange(startRow, endRow)", ->
it "returns the outermost folds entirely contained in the given row range, exclusive of end row", ->
fold1 = displayBuffer.createFold(4, 7)
fold2 = displayBuffer.createFold(5, 6)
fold3 = displayBuffer.createFold(11, 15)
fold4 = displayBuffer.createFold(12, 13)
fold5 = displayBuffer.createFold(16, 17)
expect(displayBuffer.outermostFoldsInBufferRowRange(3, 18)).toEqual [fold1, fold3, fold5]
expect(displayBuffer.outermostFoldsInBufferRowRange(5, 16)).toEqual [fold3]
describe "::clipScreenPosition(screenPosition, wrapBeyondNewlines: false, wrapAtSoftNewlines: false, skipAtomicTokens: false)", ->
beforeEach ->
displayBuffer.setSoftWrap(true)
displayBuffer.setEditorWidthInChars(50)
@@ -572,7 +598,7 @@ describe "DisplayBuffer", ->
expect(displayBuffer.clipScreenPosition([0, 1], skipAtomicTokens: true)).toEqual [0, tabLength]
expect(displayBuffer.clipScreenPosition([0, tabLength], skipAtomicTokens: true)).toEqual [0, tabLength]
describe ".screenPositionForBufferPosition(bufferPosition, options)", ->
describe "::screenPositionForBufferPosition(bufferPosition, options)", ->
it "clips the specified buffer position", ->
expect(displayBuffer.screenPositionForBufferPosition([0, 2])).toEqual [0, 2]
expect(displayBuffer.screenPositionForBufferPosition([0, 100000])).toEqual [0, 29]
@@ -585,13 +611,20 @@ describe "DisplayBuffer", ->
expect(displayBuffer.screenPositionForBufferPosition([0, 1])).toEqual [0, 2]
expect(displayBuffer.bufferPositionForScreenPosition([0, 2])).toEqual [0, 1]
describe ".getMaxLineLength()", ->
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
buffer.delete([[6, 0], [6, 65]])
expect(displayBuffer.getMaxLineLength()).toBe 62
describe ".destroy()", ->
describe "::destroy()", ->
it "unsubscribes all display buffer markers from their underlying buffer marker (regression)", ->
marker = displayBuffer.markBufferPosition([12, 2])
displayBuffer.destroy()
@@ -681,7 +714,7 @@ describe "DisplayBuffer", ->
}
markerChangedHandler.reset()
displayBuffer.destroyFoldsContainingBufferRow(4)
displayBuffer.unfoldBufferRow(4)
expect(markerChangedHandler).toHaveBeenCalled()
expect(markerChangedHandler.argsForCall[0][0]).toEqual {
oldHeadScreenPosition: [8, 23]
@@ -744,17 +777,17 @@ describe "DisplayBuffer", ->
isValid: true
}
xit "triggers the 'changed' event whenever the marker is invalidated or revalidated", ->
it "triggers the 'changed' event whenever the marker is invalidated or revalidated", ->
buffer.deleteRow(8)
expect(markerChangedHandler).toHaveBeenCalled()
expect(markerChangedHandler.argsForCall[0][0]).toEqual {
oldHeadScreenPosition: [5, 10]
oldHeadBufferPosition: [8, 10]
newHeadScreenPosition: [5, 10]
newHeadScreenPosition: [5, 0]
newHeadBufferPosition: [8, 0]
oldTailScreenPosition: [5, 4]
oldTailBufferPosition: [8, 4]
newTailScreenPosition: [5, 4]
newTailScreenPosition: [5, 0]
newTailBufferPosition: [8, 0]
textChanged: true
isValid: false
@@ -765,12 +798,12 @@ describe "DisplayBuffer", ->
expect(markerChangedHandler).toHaveBeenCalled()
expect(markerChangedHandler.argsForCall[0][0]).toEqual {
oldHeadScreenPosition: [5, 10]
oldHeadBufferPosition: [8, 10]
oldHeadScreenPosition: [5, 0]
oldHeadBufferPosition: [8, 0]
newHeadScreenPosition: [5, 10]
newHeadBufferPosition: [8, 10]
oldTailScreenPosition: [5, 4]
oldTailBufferPosition: [8, 4]
oldTailScreenPosition: [5, 0]
oldTailBufferPosition: [8, 0]
newTailScreenPosition: [5, 4]
newTailBufferPosition: [8, 4]
textChanged: true
@@ -781,7 +814,7 @@ describe "DisplayBuffer", ->
displayBuffer.createFold(10, 11)
expect(markerChangedHandler).not.toHaveBeenCalled()
xit "updates markers before emitting buffer change events, but does not notify their observers until the change event", ->
it "updates markers before emitting buffer change events, but does not notify their observers until the change event", ->
marker2 = displayBuffer.markBufferRange([[8, 1], [8, 1]])
marker2.on 'changed', marker2ChangedHandler = jasmine.createSpy("marker2ChangedHandler")
displayBuffer.on 'changed', changeHandler = jasmine.createSpy("changeHandler").andCallFake -> onDisplayBufferChange()
@@ -864,12 +897,12 @@ describe "DisplayBuffer", ->
expect(marker.getHeadScreenPosition()).toEqual [8, 10]
expect(marker.getTailScreenPosition()).toEqual [8, 4]
displayBuffer.destroyFoldsContainingBufferRow(4)
displayBuffer.unfoldBufferRow(4)
expect(changeHandler).toHaveBeenCalled()
expect(markerChangedHandler).toHaveBeenCalled()
describe ".findMarkers(attributes)", ->
describe "::findMarkers(attributes)", ->
it "allows the startBufferRow and endBufferRow to be specified", ->
marker1 = displayBuffer.markBufferRange([[0, 0], [3, 0]], class: 'a')
marker2 = displayBuffer.markBufferRange([[0, 0], [5, 0]], class: 'a')
@@ -899,7 +932,7 @@ describe "DisplayBuffer", ->
buffer.getMarker(marker2.id).destroy()
expect(destroyedHandler).toHaveBeenCalled()
describe "DisplayBufferMarker.copy(attributes)", ->
describe "DisplayBufferMarker::copy(attributes)", ->
it "creates a copy of the marker with the given attributes merged in", ->
initialMarkerCount = displayBuffer.getMarkerCount()
marker1 = displayBuffer.markScreenRange([[5, 4], [5, 10]], a: 1, b: 2)
+2571 -2428
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+225 -124
Ver Arquivo
@@ -10,8 +10,6 @@ describe "EditorView", ->
[buffer, editorView, editor, cachedLineHeight, cachedCharWidth] = []
beforeEach ->
atom.packages.activatePackage('language-text', sync: true)
atom.packages.activatePackage('language-javascript', sync: true)
editor = atom.project.openSync('sample.js')
buffer = editor.buffer
editorView = new EditorView(editor)
@@ -26,6 +24,12 @@ describe "EditorView", ->
@width(getCharWidth() * widthInChars) if widthInChars
$('#jasmine-content').append(this)
waitsForPromise ->
atom.packages.activatePackage('language-text', sync: true)
waitsForPromise ->
atom.packages.activatePackage('language-javascript', sync: true)
getLineHeight = ->
return cachedLineHeight if cachedLineHeight?
calcDimensions()
@@ -583,7 +587,7 @@ describe "EditorView", ->
editorView.renderedLines.trigger mousedownEvent(editorView: editorView, point: [4, 10])
# moving changes selection
$(document).trigger mousemoveEvent(editorView: editorView, point: [5, 27])
$(document).trigger mousemoveEvent(editorView: editorView, point: [5, 27], which: 1)
range = editor.getSelection().getScreenRange()
expect(range.start).toEqual({row: 4, column: 10})
@@ -613,12 +617,12 @@ describe "EditorView", ->
originalScrollTop = editorView.scrollTop()
# moving changes selection
$(document).trigger mousemoveEvent(editorView: editorView, pageX: 0, pageY: -1)
$(document).trigger mousemoveEvent(editorView: editorView, pageX: 0, pageY: -1, which: 1)
expect(editorView.scrollTop()).toBe originalScrollTop - editorView.lineHeight
# every mouse move selects more text
for x in [0..10]
$(document).trigger mousemoveEvent(editorView: editorView, pageX: 0, pageY: -1)
$(document).trigger mousemoveEvent(editorView: editorView, pageX: 0, pageY: -1, which: 1)
expect(editorView.scrollTop()).toBe 0
@@ -629,7 +633,7 @@ describe "EditorView", ->
event = mousedownEvent(editorView: editorView, point: [4, 10])
event.originalEvent.which = 2
editorView.renderedLines.trigger(event)
$(document).trigger mousemoveEvent(editorView: editorView, point: [5, 27])
$(document).trigger mousemoveEvent(editorView: editorView, point: [5, 27], which: 1)
$(document).trigger 'mouseup'
range = editor.getSelection().getScreenRange()
@@ -650,6 +654,25 @@ describe "EditorView", ->
expect(range.start).toEqual({row: 4, column: 10})
expect(range.end).toEqual({row: 4, column: 10})
describe "when the editor is hidden", ->
it "stops scrolling the editor", ->
editorView.vScrollMargin = 0
editorView.attachToDom(heightInLines: 5)
editorView.scrollToBottom()
spyOn(window, 'setInterval').andCallFake ->
editorView.renderedLines.trigger mousedownEvent(editorView: editorView, point: [12, 0])
originalScrollTop = editorView.scrollTop()
$(document).trigger mousemoveEvent(editorView: editorView, pageX: 0, pageY: -1, which: 1)
expect(editorView.scrollTop()).toBe originalScrollTop - editorView.lineHeight
editorView.hide()
$(document).trigger mousemoveEvent(editorView: editorView, pageX: 100000, pageY: -1, which: 1)
expect(editorView.scrollTop()).toBe originalScrollTop - editorView.lineHeight
describe "double-click and drag", ->
it "selects the word under the cursor, then continues to select by word in either direction as the mouse is dragged", ->
expect(editor.getCursorScreenPosition()).toEqual(row: 0, column: 0)
@@ -658,11 +681,11 @@ describe "EditorView", ->
editorView.renderedLines.trigger mousedownEvent(editorView: editorView, point: [0, 8], originalEvent: {detail: 2})
expect(editor.getSelectedText()).toBe "quicksort"
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [1, 8])
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [1, 8], which: 1)
expect(editor.getSelectedBufferRange()).toEqual [[0, 4], [1, 10]]
expect(editor.getCursorBufferPosition()).toEqual [1, 10]
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [0, 1])
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [0, 1], which: 1)
expect(editor.getSelectedBufferRange()).toEqual [[0, 0], [0, 13]]
expect(editor.getCursorBufferPosition()).toEqual [0, 0]
@@ -687,12 +710,12 @@ describe "EditorView", ->
expect(editor.getSelectedBufferRange()).toEqual [[4, 0], [5, 0]]
# moving changes selection linewise
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [5, 27])
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [5, 27], which: 1)
expect(editor.getSelectedBufferRange()).toEqual [[4, 0], [6, 0]]
expect(editor.getCursorBufferPosition()).toEqual [6, 0]
# moving changes selection linewise
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [2, 27])
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [2, 27], which: 1)
expect(editor.getSelectedBufferRange()).toEqual [[2, 0], [5, 0]]
expect(editor.getCursorBufferPosition()).toEqual [2, 0]
@@ -702,11 +725,11 @@ describe "EditorView", ->
describe "meta-click and drag", ->
it "adds an additional selection", ->
editorView.renderedLines.trigger mousedownEvent(editorView: editorView, point: [4, 10])
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [5, 27])
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [5, 27], which: 1)
editorView.renderedLines.trigger 'mouseup'
editorView.renderedLines.trigger mousedownEvent(editorView: editorView, point: [6, 10], metaKey: true)
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [8, 27], metaKey: true)
editorView.renderedLines.trigger mousemoveEvent(editorView: editorView, point: [8, 27], metaKey: true, which: 1)
editorView.renderedLines.trigger 'mouseup'
selections = editor.getSelections()
@@ -715,6 +738,14 @@ describe "EditorView", ->
expect(selection1.getScreenRange()).toEqual [[4, 10], [5, 27]]
expect(selection2.getScreenRange()).toEqual [[6, 10], [8, 27]]
describe "mousedown on the fold icon of a foldable line number", ->
it "toggles folding on the clicked buffer row", ->
expect(editor.isFoldedAtScreenRow(1)).toBe false
editorView.gutter.find('.line-number:eq(1) .icon-right').mousedown()
expect(editor.isFoldedAtScreenRow(1)).toBe true
editorView.gutter.find('.line-number:eq(1) .icon-right').mousedown()
expect(editor.isFoldedAtScreenRow(1)).toBe false
describe "when text input events are triggered on the hidden input element", ->
it "inserts the typed character at the cursor position, both in the buffer and the pre element", ->
editorView.attachToDom()
@@ -1794,25 +1825,58 @@ 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)
it "creates a line number element for each visible line with &nbsp; padding to the left of the number", ->
expect(editorView.gutter.find('.line-number').length).toBe 8
expect(editorView.find('.line-number:first').html()).toBe "&nbsp;1"
expect(editorView.gutter.find('.line-number:last').html()).toBe "&nbsp;8"
expect(editorView.find('.line-number:first').html()).toMatch /^&nbsp;1/
expect(editorView.gutter.find('.line-number:last').html()).toMatch /^&nbsp;8/
# here we don't scroll far enough to trigger additional rendering
editorView.scrollTop(editorView.lineHeight * 1.5)
expect(editorView.renderedLines.find('.line').length).toBe 8
expect(editorView.gutter.find('.line-number:first').html()).toBe "&nbsp;1"
expect(editorView.gutter.find('.line-number:last').html()).toBe "&nbsp;8"
expect(editorView.gutter.find('.line-number:first').html()).toMatch /^&nbsp;1/
expect(editorView.gutter.find('.line-number:last').html()).toMatch /^&nbsp;8/
editorView.scrollTop(editorView.lineHeight * 3.5)
expect(editorView.renderedLines.find('.line').length).toBe 10
expect(editorView.gutter.find('.line-number:first').html()).toBe "&nbsp;2"
expect(editorView.gutter.find('.line-number:last').html()).toBe "11"
expect(editorView.gutter.find('.line-number:first').html()).toMatch /^&nbsp;2/
expect(editorView.gutter.find('.line-number:last').html()).toMatch /^11/
it "adds a .foldable class to lines that start foldable regions", ->
expect(editorView.gutter.find('.line-number:eq(0)')).toHaveClass 'foldable'
expect(editorView.gutter.find('.line-number:eq(1)')).toHaveClass 'foldable'
expect(editorView.gutter.find('.line-number:eq(2)')).not.toHaveClass 'foldable'
expect(editorView.gutter.find('.line-number:eq(3)')).not.toHaveClass 'foldable'
expect(editorView.gutter.find('.line-number:eq(4)')).toHaveClass 'foldable'
# changes to indentation update foldability
editor.setIndentationForBufferRow(1, 0)
expect(editorView.gutter.find('.line-number:eq(0)')).not.toHaveClass 'foldable'
expect(editorView.gutter.find('.line-number:eq(1)')).toHaveClass 'foldable'
# changes to comments update foldability
editor.toggleLineCommentsForBufferRows(2, 3)
expect(editorView.gutter.find('.line-number:eq(2)')).toHaveClass 'foldable'
expect(editorView.gutter.find('.line-number:eq(3)')).not.toHaveClass 'foldable'
editor.toggleLineCommentForBufferRow(2)
expect(editorView.gutter.find('.line-number:eq(2)')).not.toHaveClass 'foldable'
expect(editorView.gutter.find('.line-number:eq(3)')).not.toHaveClass 'foldable'
editor.toggleLineCommentForBufferRow(4)
expect(editorView.gutter.find('.line-number:eq(3)')).toHaveClass 'foldable'
describe "when lines are inserted", ->
it "re-renders the correct line number range in the gutter", ->
@@ -1827,11 +1891,11 @@ describe "EditorView", ->
it "re-renders the correct line number range when there are folds", ->
editorView.editor.foldBufferRow(1)
expect(editorView.gutter.find('.line-number-1')).toHaveClass 'fold'
expect(editorView.gutter.find('.line-number-1')).toHaveClass 'folded'
buffer.insert([0, 0], '\n')
expect(editorView.gutter.find('.line-number-2')).toHaveClass 'fold'
expect(editorView.gutter.find('.line-number-2')).toHaveClass 'folded'
describe "when wrapping is on", ->
it "renders a • instead of line number for wrapped portions of lines", ->
@@ -1839,7 +1903,7 @@ describe "EditorView", ->
editorView.setWidthInChars(50)
expect(editorView.gutter.find('.line-number').length).toEqual(8)
expect(editorView.gutter.find('.line-number:eq(3)').intValue()).toBe 4
expect(editorView.gutter.find('.line-number:eq(4)').html()).toBe '&nbsp;•'
expect(editorView.gutter.find('.line-number:eq(4)').html()).toMatch /^&nbsp;/
expect(editorView.gutter.find('.line-number:eq(5)').intValue()).toBe 5
describe "when there are folds", ->
@@ -1866,8 +1930,8 @@ describe "EditorView", ->
it "styles folded line numbers", ->
editor.createFold(3, 5)
expect(editorView.gutter.find('.line-number.fold').length).toBe 1
expect(editorView.gutter.find('.line-number.fold:eq(0)').intValue()).toBe 4
expect(editorView.gutter.find('.line-number.folded').length).toBe 1
expect(editorView.gutter.find('.line-number.folded:eq(0)').intValue()).toBe 4
describe "when the scrollView is scrolled to the right", ->
it "adds a drop shadow to the gutter", ->
@@ -2385,51 +2449,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()", ->
@@ -2485,9 +2509,9 @@ describe "EditorView", ->
expect(edited).toBe false
describe "when editor:copy-path is triggered", ->
it "copies the absolute path to the editor view's file to the pasteboard", ->
it "copies the absolute path to the editor view's file to the clipboard", ->
editorView.trigger 'editor:copy-path'
expect(atom.pasteboard.read()[0]).toBe editor.getPath()
expect(atom.clipboard.read()).toBe editor.getPath()
describe "when editor:move-line-up is triggered", ->
describe "when there is no selection", ->
@@ -2502,6 +2526,52 @@ describe "EditorView", ->
editorView.trigger 'editor:move-line-up'
expect(editor.getCursorBufferPosition()).toEqual [0,2]
describe "when the line above is folded", ->
it "moves the line around the fold", ->
editor.foldBufferRow(1)
editor.setCursorBufferPosition([10, 0])
editorView.trigger 'editor:move-line-up'
expect(editor.getCursorBufferPosition()).toEqual [1, 0]
expect(buffer.lineForRow(1)).toBe ''
expect(buffer.lineForRow(2)).toBe ' var sort = function(items) {'
expect(editor.isFoldedAtBufferRow(1)).toBe false
expect(editor.isFoldedAtBufferRow(2)).toBe true
describe "when the line being moved is folded", ->
it "moves the fold around the fold above it", ->
editor.setCursorBufferPosition([0, 0])
editor.insertText """
var a = function() {
b = 3;
};
"""
editor.foldBufferRow(0)
editor.foldBufferRow(3)
editor.setCursorBufferPosition([3, 0])
editorView.trigger 'editor:move-line-up'
expect(editor.getCursorBufferPosition()).toEqual [0, 0]
expect(buffer.lineForRow(0)).toBe 'var quicksort = function () {'
expect(buffer.lineForRow(13)).toBe 'var a = function() {'
editor.logScreenLines()
expect(editor.isFoldedAtBufferRow(0)).toBe true
expect(editor.isFoldedAtBufferRow(13)).toBe true
describe "when the line above is empty and the line above that is folded", ->
it "moves the line to the empty line", ->
editor.foldBufferRow(2)
editor.setCursorBufferPosition([11, 0])
editorView.trigger 'editor:move-line-up'
expect(editor.getCursorBufferPosition()).toEqual [10, 0]
expect(buffer.lineForRow(9)).toBe ' };'
expect(buffer.lineForRow(10)).toBe ' return sort(Array.apply(this, arguments));'
expect(buffer.lineForRow(11)).toBe ''
expect(editor.isFoldedAtBufferRow(2)).toBe true
expect(editor.isFoldedAtBufferRow(10)).toBe false
describe "where there is a selection", ->
describe "when the selection falls inside the line", ->
it "maintains the selection", ->
@@ -2601,6 +2671,54 @@ describe "EditorView", ->
editorView.trigger 'editor:move-line-down'
expect(editor.getCursorBufferPosition()).toEqual [1, 2]
describe "when the line below is folded", ->
it "moves the line around the fold", ->
editor.setCursorBufferPosition([0, 0])
editor.foldBufferRow(1)
editorView.trigger 'editor:move-line-down'
expect(editor.getCursorBufferPosition()).toEqual [9, 0]
expect(buffer.lineForRow(0)).toBe ' var sort = function(items) {'
expect(buffer.lineForRow(9)).toBe 'var quicksort = function () {'
expect(editor.isFoldedAtBufferRow(0)).toBe true
expect(editor.isFoldedAtBufferRow(9)).toBe false
describe "when the line being moved is folded", ->
it "moves the fold around the fold below it", ->
editor.setCursorBufferPosition([0, 0])
editor.insertText """
var a = function() {
b = 3;
};
"""
editor.foldBufferRow(0)
editor.foldBufferRow(3)
editor.setCursorBufferPosition([0, 0])
editorView.trigger 'editor:move-line-down'
expect(editor.getCursorBufferPosition()).toEqual [13, 0]
expect(buffer.lineForRow(0)).toBe 'var quicksort = function () {'
expect(buffer.lineForRow(13)).toBe 'var a = function() {'
expect(editor.isFoldedAtBufferRow(0)).toBe true
expect(editor.isFoldedAtBufferRow(13)).toBe true
describe "when the line below is empty and the line below that is folded", ->
it "moves the line to the empty line", ->
editor.setCursorBufferPosition([0, Infinity])
editor.insertText('\n')
editor.setCursorBufferPosition([0, 0])
editor.foldBufferRow(2)
editorView.trigger 'editor:move-line-down'
expect(editor.getCursorBufferPosition()).toEqual [1, 0]
expect(buffer.lineForRow(0)).toBe ''
expect(buffer.lineForRow(1)).toBe 'var quicksort = function () {'
expect(buffer.lineForRow(2)).toBe ' var sort = function(items) {'
expect(editor.isFoldedAtBufferRow(0)).toBe false
expect(editor.isFoldedAtBufferRow(1)).toBe false
expect(editor.isFoldedAtBufferRow(2)).toBe true
describe "when the cursor is on the last line", ->
it "does not move the line", ->
editor.moveCursorToBottom()
@@ -2682,64 +2800,9 @@ describe "EditorView", ->
expect(buffer.lineForRow(1)).toBe ' if (items.length <= 1) return items;'
expect(buffer.lineForRow(2)).toBe ' var sort = function(items) {'
describe "when editor:duplicate-line is triggered", ->
describe "where there is no selection", ->
describe "when the cursor isn't on a folded line", ->
it "duplicates the current line below and moves the cursor down one row", ->
editor.setCursorBufferPosition([0, 5])
editorView.trigger 'editor:duplicate-line'
expect(buffer.lineForRow(0)).toBe 'var quicksort = function () {'
expect(buffer.lineForRow(1)).toBe 'var quicksort = function () {'
expect(editor.getCursorBufferPosition()).toEqual [1, 5]
describe "when the cursor is on a folded line", ->
it "duplicates the entire fold before and moves the cursor to the new fold", ->
editor.setCursorBufferPosition([4])
editor.foldCurrentRow()
editorView.trigger 'editor:duplicate-line'
expect(editor.getCursorScreenPosition()).toEqual [5]
expect(editor.isFoldedAtScreenRow(4)).toBeTruthy()
expect(editor.isFoldedAtScreenRow(5)).toBeTruthy()
expect(buffer.lineForRow(8)).toBe ' while(items.length > 0) {'
expect(buffer.lineForRow(9)).toBe ' current = items.shift();'
expect(buffer.lineForRow(10)).toBe ' current < pivot ? left.push(current) : right.push(current);'
expect(buffer.lineForRow(11)).toBe ' }'
describe "when the cursor is on the last line and it doesn't have a trailing newline", ->
it "inserts a newline and the duplicated line", ->
editor.moveCursorToBottom()
editorView.trigger 'editor:duplicate-line'
expect(buffer.lineForRow(12)).toBe '};'
expect(buffer.lineForRow(13)).toBe '};'
expect(buffer.lineForRow(14)).toBeUndefined()
expect(editor.getCursorBufferPosition()).toEqual [13, 2]
describe "when the cursor in on the last line and it is only a newline", ->
it "duplicates the current line below and moves the cursor down one row", ->
editor.moveCursorToBottom()
editor.insertNewline()
editor.moveCursorToBottom()
editorView.trigger 'editor:duplicate-line'
expect(buffer.lineForRow(13)).toBe ''
expect(buffer.lineForRow(14)).toBe ''
expect(buffer.lineForRow(15)).toBeUndefined()
expect(editor.getCursorBufferPosition()).toEqual [14, 0]
describe "when the cursor is on the second to last line and the last line only a newline", ->
it "duplicates the current line below and moves the cursor down one row", ->
editor.moveCursorToBottom()
editor.insertNewline()
editor.setCursorBufferPosition([12])
editorView.trigger 'editor:duplicate-line'
expect(buffer.lineForRow(12)).toBe '};'
expect(buffer.lineForRow(13)).toBe '};'
expect(buffer.lineForRow(14)).toBe ''
expect(buffer.lineForRow(15)).toBeUndefined()
expect(editor.getCursorBufferPosition()).toEqual [13, 0]
describe "when the escape key is pressed on the editor view", ->
it "clears multiple selections if there are any, and otherwise allows other bindings to be handled", ->
atom.keymap.bindKeys 'name', '.editor', {'escape': 'test-event'}
atom.keymaps.bindKeys 'name', '.editor', {'escape': 'test-event'}
testEventHandler = jasmine.createSpy("testEventHandler")
editorView.on 'test-event', testEventHandler
@@ -2831,6 +2894,20 @@ describe "EditorView", ->
for rowNumber in [1..5]
expect(editorView.lineElementForScreenRow(rowNumber).text()).toBe buffer.lineForRow(rowNumber)
it "correctly calculates the position left for non-monospaced invisibles", ->
editorView.setShowInvisibles(true)
editorView.setInvisibles tab: ''
editor.setText('\tx')
editorView.setFontFamily('serif')
editorView.setFontSize(10)
editorView.attachToDom()
editorView.setWidthInChars(5)
expect(editorView.pixelPositionForScreenPosition([0, 0]).left).toEqual 0
expect(editorView.pixelPositionForScreenPosition([0, 1]).left).toEqual 10
expect(editorView.pixelPositionForScreenPosition([0, 2]).left).toEqual 13
describe "when the window is resized", ->
it "updates the active edit session with the current soft wrap column", ->
editorView.attachToDom()
@@ -2859,6 +2936,30 @@ describe "EditorView", ->
editorView.pixelPositionForScreenPosition([1, 5])
expect(editorView.measureToColumn.callCount).toBe 0
describe "when stylesheets are changed", ->
afterEach ->
atom.themes.removeStylesheet 'line-height'
atom.themes.removeStylesheet 'char-width'
it "updates the editor if the line height or character width changes due to a stylesheet change", ->
editorView.attachToDom()
editor.setCursorScreenPosition([1, 3])
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 20, left: 30}
expect(editorView.getCursorView().position()).toEqual {top: 20, left: 30}
atom.themes.applyStylesheet 'line-height', """
.editor { line-height: 2; }
"""
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 20, left: 30}
expect(editorView.getCursorView().position()).toEqual {top: 20, left: 30}
atom.themes.applyStylesheet 'char-width', """
.editor { letter-spacing: 2px; }
"""
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 20, left: 36}
expect(editorView.getCursorView().position()).toEqual {top: 20, left: 36}
describe "when the editor contains hard tabs", ->
it "correctly calculates the the position left for a column", ->
editor.setText('\ttest')
-132
Ver Arquivo
@@ -1,132 +0,0 @@
{File, fs} = require 'atom'
path = require 'path'
describe 'File', ->
[filePath, file] = []
beforeEach ->
filePath = path.join(__dirname, 'fixtures', 'atom-file-test.txt') # Don't put in /tmp because /tmp symlinks to /private/tmp and screws up the rename test
fs.removeSync(filePath) if fs.existsSync(filePath)
fs.writeFileSync(filePath, "this is old!")
file = new File(filePath)
afterEach ->
file.off()
fs.removeSync(filePath) if fs.existsSync(filePath)
describe "when the file has not been read", ->
describe "when the contents of the file change", ->
it "triggers 'contents-changed' event handlers", ->
file.on 'contents-changed', changeHandler = jasmine.createSpy('changeHandler')
fs.writeFileSync(file.getPath(), "this is new!")
waitsFor "change event", ->
changeHandler.callCount > 0
describe "when the file has already been read", ->
beforeEach ->
file.readSync()
describe "when the contents of the file change", ->
it "triggers 'contents-changed' event handlers", ->
changeHandler = null
changeHandler = jasmine.createSpy('changeHandler')
file.on 'contents-changed', changeHandler
fs.writeFileSync(file.getPath(), "this is new!")
waitsFor "change event", ->
changeHandler.callCount > 0
runs ->
changeHandler.reset()
fs.writeFileSync(file.getPath(), "this is newer!")
waitsFor "second change event", ->
changeHandler.callCount > 0
describe "when the file is removed", ->
it "triggers 'remove' event handlers", ->
removeHandler = null
removeHandler = jasmine.createSpy('removeHandler')
file.on 'removed', removeHandler
fs.removeSync(file.getPath())
waitsFor "remove event", ->
removeHandler.callCount > 0
describe "when a file is moved (via the filesystem)", ->
newPath = null
beforeEach ->
newPath = path.join(path.dirname(filePath), "atom-file-was-moved-test.txt")
afterEach ->
if fs.existsSync(newPath)
fs.removeSync(newPath)
waitsFor "remove event", (done) -> file.on 'removed', done
it "it updates its path", ->
jasmine.unspy(window, "setTimeout")
moveHandler = null
moveHandler = jasmine.createSpy('moveHandler')
file.on 'moved', moveHandler
fs.moveSync(filePath, newPath)
waitsFor "move event", 30000, ->
moveHandler.callCount > 0
runs ->
expect(file.getPath()).toBe newPath
it "maintains 'contents-changed' events set on previous path", ->
jasmine.unspy(window, "setTimeout")
moveHandler = null
moveHandler = jasmine.createSpy('moveHandler')
file.on 'moved', moveHandler
changeHandler = null
changeHandler = jasmine.createSpy('changeHandler')
file.on 'contents-changed', changeHandler
fs.moveSync(filePath, newPath)
waitsFor "move event", ->
moveHandler.callCount > 0
runs ->
expect(changeHandler).not.toHaveBeenCalled()
fs.writeFileSync(file.getPath(), "this is new!")
waitsFor "change event", ->
changeHandler.callCount > 0
describe "when a file is deleted and the recreated within a small amount of time (git sometimes does this)", ->
it "triggers a contents change event if the contents change", ->
jasmine.unspy(File.prototype, 'detectResurrectionAfterDelay')
jasmine.unspy(window, "setTimeout")
changeHandler = jasmine.createSpy("file changed")
removeHandler = jasmine.createSpy("file removed")
file.on 'contents-changed', changeHandler
file.on 'removed', removeHandler
expect(changeHandler).not.toHaveBeenCalled()
fs.removeSync(filePath)
expect(changeHandler).not.toHaveBeenCalled()
waits 20
runs ->
fs.writeFileSync(filePath, "HE HAS RISEN!")
expect(changeHandler).not.toHaveBeenCalled()
waitsFor "resurrection change event", ->
changeHandler.callCount == 1
runs ->
expect(removeHandler).not.toHaveBeenCalled()
fs.writeFileSync(filePath, "Hallelujah!")
changeHandler.reset()
waitsFor "post-resurrection change event", ->
changeHandler.callCount > 0
@@ -1,2 +1 @@
'activationEvents': ['activation-event']
'deferredDeserializers': ['Foo']
@@ -1 +0,0 @@
I am hidden so I shouldn't be loaded
@@ -1 +0,0 @@
I am not a valid plist but that shouldn't cause a crisis
@@ -0,0 +1 @@
module.exports = activate: ->
@@ -0,0 +1,5 @@
{
"name": "no events",
"version": "0.1.0",
"activationEvents": []
}
@@ -1,7 +0,0 @@
{
"name": "my preferences",
"scope": "source.pref",
"settings": {
"increaseIndentPattern": "^abc$"
}
}
@@ -1,5 +1 @@
# This package loads async, otherwise it would log errors when it
# is automatically serialized when workspaceView is deactivatated
'main': 'index.coffee'
'activationEvents': ['activation-event']
+1 -1
Ver Arquivo
@@ -1,3 +1,3 @@
{
"theme": true
"theme": "ui"
}
+1 -1
Ver Arquivo
@@ -1,3 +1,3 @@
{
"theme": true
"theme": "ui"
}
@@ -1,3 +1,3 @@
{
"theme": true
"theme": "ui"
}

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais