Comparar commits

...

246 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
60 arquivos alterados com 555 adições e 253 exclusões
+1
Ver Arquivo
@@ -1,4 +1,5 @@
*.swp
*~
.DS_Store
.project
.svn
+1
Ver Arquivo
@@ -56,6 +56,7 @@ 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
+5 -2
Ver Arquivo
@@ -66,14 +66,17 @@ if [ $OS == 'Mac' ]; then
open -a "$ATOM_PATH/$ATOM_APP_NAME" -n --args --executed-from="$(pwd)" --pid=$$ "$@"
fi
elif [ $OS == 'Linux' ]; then
ATOM_PATH='/opt/Atom/atom'
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 &
nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > /dev/null 2>&1 &
fi
fi
+3 -5
Ver Arquivo
@@ -39,35 +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')
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('/Applications', appName)
else
appName = 'Atom'
tmpDir = '/tmp'
installRoot = '/opt'
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 = path.join(installRoot, appName)
installDir = process.env.INSTALL_PREFIX ? '/usr/local'
coffeeConfig =
options:
+1 -1
Ver Arquivo
@@ -25,7 +25,7 @@
"grunt-shell": "~0.3.1",
"harmony-collections": "~0.3.8",
"json-front-matter": "~0.1.3",
"legal-eagle": "~0.3.0",
"legal-eagle": "~0.4.0",
"minidump": "0.5.x",
"rcedit": "~0.1.2",
"request": "~2.27.0",
+6 -1
Ver Arquivo
@@ -47,7 +47,9 @@ module.exports = (grunt) ->
path.join('less', 'test')
path.join('bootstrap', 'docs')
path.join('bootstrap', 'examples')
path.join('spellchecker', 'vendor')
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')
@@ -56,6 +58,9 @@ module.exports = (grunt) ->
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)$)")
+19 -1
Ver Arquivo
@@ -1,4 +1,6 @@
fs = require 'fs'
path = require 'path'
fs = require 'fs-plus'
runas = null
module.exports = (grunt) ->
@@ -15,7 +17,23 @@ module.exports = (grunt) ->
createShortcut = path.resolve 'script', 'create-shortcut.cmd'
runas('cmd', ['/c', createShortcut, path.join(installDir, 'atom.exe'), 'Atom'])
else
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")
+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)
+16
Ver Arquivo
@@ -83,6 +83,22 @@ 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
+9 -7
Ver Arquivo
@@ -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,14 +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.
this at least protects you from improperly deserializing old state.
+1 -1
Ver Arquivo
@@ -73,7 +73,7 @@ from.
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 `meta-w`, then press `meta-w` one more time to close the pane. You
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
-3
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'
+1
Ver Arquivo
@@ -119,6 +119,7 @@
'cmd-k cmd-u': 'editor:upper-case'
'cmd-k cmd-l': 'editor:lower-case'
'cmd-l': 'editor:select-line'
'ctrl-t': 'editor:transpose'
'.workspace .editor:not(.mini)':
# Atom specific
+2
Ver Arquivo
@@ -10,11 +10,13 @@
'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'
+1 -3
Ver Arquivo
@@ -17,7 +17,7 @@
{ label: 'Close All &Buffers', command: 'pane:close' }
{ label: 'Clos&e Window', command: 'window:close' }
{ type: 'separator' }
{ label: 'E&xit', command: 'application:quit' }
{ label: 'Quit', command: 'application:quit' }
]
}
@@ -144,10 +144,8 @@
{
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' }
{ label: '&Documentation', command: 'application:open-documentation' }
{ type: 'separator' }
+49 -46
Ver Arquivo
@@ -1,7 +1,8 @@
{
"name": "atom",
"productName": "Atom",
"version": "0.76.0",
"version": "0.85.0",
"description": "A hackable text editor for the 21st Century.",
"main": "./src/browser/main.js",
"repository": {
"type": "git",
@@ -11,45 +12,47 @@
"url": "https://github.com/atom/atom/issues"
},
"license": "All Rights Reserved",
"atomShellVersion": "0.11.2",
"atomShellVersion": "0.11.5",
"dependencies": {
"async": "0.2.6",
"atom-keymap": "^0.10.0",
"atom-keymap": "^0.16.0",
"bootstrap": "git://github.com/atom/bootstrap.git#6af81906189f1747fd6c93479e3d998ebe041372",
"clear-cut": "0.4.0",
"coffee-script": "1.7.0",
"coffeestack": "0.7.0",
"delegato": "1.x",
"emissary": "1.x",
"first-mate": ">=1.4.2 <2.0",
"fs-plus": ">=2.0.4 < 3.0",
"emissary": "^1.2.1",
"first-mate": "^1.5.1",
"fs-plus": "^2.2",
"fstream": "0.1.24",
"fuzzaldrin": "~1.1",
"git-utils": "^1.1.1",
"git-utils": "^1.2.2",
"grim": "0.6.0",
"guid": "0.0.10",
"jasmine-tagged": ">=1.1.1 <2.0",
"mkdirp": "0.3.5",
"jasmine-tagged": "^1.1.1",
"keytar": "1.x",
"less-cache": "0.12.0",
"mixto": "1.x",
"mkdirp": "0.3.5",
"nslog": "0.5.0",
"oniguruma": "^1.0.4",
"oniguruma": "^1.0.6",
"optimist": "0.4.0",
"pathwatcher": "^1.0.0",
"pathwatcher": "^1.1.1",
"property-accessors": "1.x",
"q": "^1.0.1",
"random-words": "0.0.1",
"runas": "0.5.x",
"scandal": "0.15.0",
"scandal": "0.15.2",
"scoped-property-store": "^0.8.0",
"scrollbar-style": "^0.1.0",
"season": ">=1.0.2 <2.0",
"season": "^1.0.2",
"semver": "1.1.4",
"serializable": "1.x",
"space-pen": "3.1.1",
"temp": "0.5.0",
"text-buffer": "^1.4.4",
"text-buffer": "^1.4.6",
"theorist": "1.x",
"underscore-plus": ">=1.0.5 <2.0",
"underscore-plus": "^1.1.2",
"vm-compatibility-layer": "0.1.0"
},
"packageDependencies": {
@@ -60,62 +63,62 @@
"base16-tomorrow-dark-theme": "0.13.0",
"solarized-dark-syntax": "0.14.0",
"solarized-light-syntax": "0.7.0",
"archive-view": "0.29.0",
"archive-view": "0.30.0",
"autocomplete": "0.27.0",
"autoflow": "0.15.0",
"autosave": "0.13.0",
"background-tips": "0.9.0",
"background-tips": "0.10.0",
"bookmarks": "0.22.0",
"bracket-matcher": "0.26.0",
"command-palette": "0.19.0",
"dev-live-reload": "0.29.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.92.0",
"fuzzy-finder": "0.42.0",
"git-diff": "0.25.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.12.0",
"keybinding-resolver": "0.15.0",
"link": "0.20.0",
"markdown-preview": "0.50.0",
"markdown-preview": "0.59.0",
"metrics": "0.32.0",
"open-on-github": "0.23.0",
"open-on-github": "0.26.0",
"package-generator": "0.30.0",
"release-notes": "0.26.0",
"settings-view": "0.97.0",
"snippets": "0.37.0",
"spell-check": "0.28.0",
"status-bar": "0.36.0",
"styleguide": "0.26.0",
"symbols-view": "0.44.0",
"tabs": "0.31.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.83.0",
"tree-view": "0.86.0",
"update-package-dependencies": "0.6.0",
"welcome": "0.11.0",
"whitespace": "0.21.0",
"welcome": "0.12.0",
"whitespace": "0.22.0",
"wrap-guide": "0.18.0",
"language-c": "0.13.0",
"language-coffee-script": "0.16.0",
"language-c": "0.14.0",
"language-coffee-script": "0.19.0",
"language-css": "0.13.0",
"language-gfm": "0.24.0",
"language-gfm": "0.29.0",
"language-git": "0.9.0",
"language-go": "0.7.0",
"language-html": "0.15.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.10.0",
"language-objective-c": "0.11.0",
"language-perl": "0.8.0",
"language-php": "0.13.0",
"language-php": "0.14.0",
"language-property-list": "0.7.0",
"language-python": "0.12.0",
"language-ruby": "0.16.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",
@@ -124,7 +127,7 @@
"language-text": "0.6.0",
"language-todo": "0.9.0",
"language-toml": "0.12.0",
"language-xml": "0.8.0",
"language-xml": "0.9.0",
"language-yaml": "0.6.0"
},
"private": true,
Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 48 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 %>
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var nodeMinorVersion = process.versions.node.split('.')[1]
if (nodeMinorVersion !== '10') {
+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');
+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');
var os = require('os');
+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');
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');
+12 -12
Ver Arquivo
@@ -170,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 ->
@@ -377,8 +377,8 @@ describe "the `atom` global", ->
runs ->
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
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", ->
waitsForPromise ->
+7
Ver Arquivo
@@ -170,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] = []
+15 -15
Ver Arquivo
@@ -18,7 +18,7 @@ describe "DisplayBuffer", ->
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)
@@ -536,7 +536,7 @@ describe "DisplayBuffer", ->
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)", ->
describe "::clipScreenPosition(screenPosition, wrapBeyondNewlines: false, wrapAtSoftNewlines: false, skipAtomicTokens: false)", ->
beforeEach ->
displayBuffer.setSoftWrap(true)
displayBuffer.setEditorWidthInChars(50)
@@ -598,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]
@@ -618,13 +618,13 @@ describe "DisplayBuffer", ->
expect(displayBuffer.screenPositionForBufferPosition([0, 10], wrapAtSoftNewlines: true)).toEqual [1, 0]
expect(displayBuffer.bufferPositionForScreenPosition([1, 0])).toEqual [0, 10]
describe ".getMaxLineLength()", ->
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()
@@ -777,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
@@ -798,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
@@ -814,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()
@@ -902,7 +902,7 @@ describe "DisplayBuffer", ->
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')
@@ -932,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)
+25
Ver Arquivo
@@ -1424,6 +1424,26 @@ describe "Editor", ->
editor.undo()
expect(editor.getCursorBufferPosition()).toEqual [3,4]
it "indents the new line to the same indent level as the current line when editor.autoIndent is true", ->
atom.config.set('editor.autoIndent', true)
editor.setText(' var test')
editor.setCursorBufferPosition([0,2])
editor.insertNewlineAbove()
expect(editor.getCursorBufferPosition()).toEqual [0,2]
expect(editor.lineForBufferRow(0)).toBe ' '
expect(editor.lineForBufferRow(1)).toBe ' var test'
editor.setText('\n var test')
editor.setCursorBufferPosition([1,2])
editor.insertNewlineAbove()
expect(editor.getCursorBufferPosition()).toEqual [1,2]
expect(editor.lineForBufferRow(0)).toBe ''
expect(editor.lineForBufferRow(1)).toBe ' '
expect(editor.lineForBufferRow(2)).toBe ' var test'
describe ".backspace()", ->
describe "when there is a single cursor", ->
changeScreenRangeHandler = null
@@ -1596,6 +1616,11 @@ describe "Editor", ->
expect(cursor1.getBufferPosition()).toEqual [1, 13]
expect(cursor2.getBufferPosition()).toEqual [2, 34]
editor.setText(' var sort')
editor.setCursorBufferPosition([0, 2])
editor.backspaceToBeginningOfWord()
expect(buffer.lineForRow(0)).toBe 'var sort'
describe "when text is selected", ->
it "deletes only selected text", ->
editor.setSelectedBufferRanges([[[1, 24], [1, 27]], [[2, 0], [2, 4]]])
+19 -5
Ver Arquivo
@@ -2802,7 +2802,7 @@ describe "EditorView", ->
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
@@ -2894,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()
@@ -2937,14 +2951,14 @@ describe "EditorView", ->
.editor { line-height: 2; }
"""
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 32, left: 30}
expect(editorView.getCursorView().position()).toEqual {top: 32, left: 30}
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: 32, left: 36}
expect(editorView.getCursorView().position()).toEqual {top: 32, left: 36}
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", ->
+21 -4
Ver Arquivo
@@ -177,6 +177,24 @@ describe "Git", ->
status = repo.getPathStatus(filePath)
expect(statusHandler.callCount).toBe 1
describe ".getDirectoryStatus(path)", ->
[directoryPath, filePath, originalPathText] = []
beforeEach ->
repo = new Git(path.join(__dirname, 'fixtures', 'git', 'working-dir'))
directoryPath = path.join(__dirname, 'fixtures', 'git', 'working-dir', 'dir')
filePath = require.resolve('./fixtures/git/working-dir/dir/b.txt')
originalPathText = fs.readFileSync(filePath, 'utf8')
afterEach ->
fs.writeFileSync(filePath, originalPathText)
it "gets the status based on the files inside the directory", ->
expect(repo.isStatusModified(repo.getDirectoryStatus(directoryPath))).toBe false
fs.writeFileSync(filePath, 'abc')
repo.getPathStatus(filePath)
expect(repo.isStatusModified(repo.getDirectoryStatus(directoryPath))).toBe true
describe ".refreshStatus()", ->
[newPath, modifiedPath, cleanPath, originalModifiedPathText] = []
@@ -203,10 +221,9 @@ describe "Git", ->
statusHandler.callCount > 0
runs ->
statuses = repo.statuses
expect(statuses[cleanPath]).toBeUndefined()
expect(repo.isStatusNew(statuses[newPath])).toBeTruthy()
expect(repo.isStatusModified(statuses[modifiedPath])).toBeTruthy()
expect(repo.getCachedPathStatus(cleanPath)).toBeUndefined()
expect(repo.isStatusNew(repo.getCachedPathStatus(newPath))).toBeTruthy()
expect(repo.isStatusModified(repo.getCachedPathStatus(modifiedPath))).toBeTruthy()
describe "buffer events", ->
[originalContent, editor] = []
+10
Ver Arquivo
@@ -46,6 +46,16 @@ describe "LanguageMode", ->
languageMode.toggleLineCommentsForBufferRows(0, 0)
expect(buffer.lineForRow(0)).toBe " // var i;"
buffer.setText(' ')
languageMode.toggleLineCommentsForBufferRows(0, 0)
expect(buffer.lineForRow(0)).toBe " // "
buffer.setText (' a\n \n b')
languageMode.toggleLineCommentsForBufferRows(0, 2)
expect(buffer.lineForRow(0)).toBe " // a"
expect(buffer.lineForRow(1)).toBe " // "
expect(buffer.lineForRow(2)).toBe " // b"
describe ".rowRangeForCodeFoldAtBufferRow(bufferRow)", ->
it "returns the start/end rows of the foldable region starting at the given row", ->
expect(languageMode.rowRangeForCodeFoldAtBufferRow(0)).toEqual [0, 12]
+9 -8
Ver Arquivo
@@ -6,8 +6,8 @@ require '../vendor/jasmine-jquery'
path = require 'path'
_ = require 'underscore-plus'
fs = require 'fs-plus'
Keymap = require '../src/keymap-extensions'
{$, WorkspaceView} = require 'atom'
KeymapManager = require '../src/keymap-extensions'
{$, WorkspaceView, Workspace} = require 'atom'
Config = require '../src/config'
{Point} = require 'text-buffer'
Project = require '../src/project'
@@ -22,8 +22,8 @@ atom.themes.requireStylesheet '../static/jasmine'
fixturePackagesPath = path.resolve(__dirname, './fixtures/packages')
atom.packages.packageDirPaths.unshift(fixturePackagesPath)
atom.keymap.loadBundledKeymaps()
keyBindingsToRestore = atom.keymap.getKeyBindings()
atom.keymaps.loadBundledKeymaps()
keyBindingsToRestore = atom.keymaps.getKeyBindings()
$(window).on 'core:close', -> window.close()
$(window).on 'unload', ->
@@ -50,7 +50,8 @@ beforeEach ->
$.fx.off = true
projectPath = specProjectPath ? path.join(@specDirectory, 'fixtures')
atom.project = new Project(path: projectPath)
atom.keymap.keyBindings = _.clone(keyBindingsToRestore)
atom.workspace = new Workspace()
atom.keymaps.keyBindings = _.clone(keyBindingsToRestore)
window.resetTimeouts()
atom.packages.packageStates = {}
@@ -112,7 +113,7 @@ afterEach ->
atom.workspaceView = null
delete atom.state.workspace
atom.project?.destroy?()
atom.project?.destroy()
atom.project = null
delete atom.state.packageStates
@@ -187,7 +188,7 @@ window.keydownEvent = (key, properties={}) ->
originalEventProperties.cmd = properties.metaKey
originalEventProperties.target = properties.target?[0] ? properties.target
originalEventProperties.which = properties.which
originalEvent = Keymap.keydownEvent(key, originalEventProperties)
originalEvent = KeymapManager.keydownEvent(key, originalEventProperties)
properties = $.extend({originalEvent}, properties)
$.Event("keydown", properties)
@@ -278,7 +279,7 @@ $.fn.resultOfTrigger = (type) ->
event.result
$.fn.enableKeymap = ->
@on 'keydown', (e) => atom.keymap.handleKeyEvent(e)
@on 'keydown', (e) => atom.keymaps.handleKeyEvent(e)
$.fn.attachToDom = ->
@appendTo($('#jasmine-content'))
+1 -1
Ver Arquivo
@@ -111,7 +111,7 @@ describe "WorkspaceView", ->
commandHandler = jasmine.createSpy('commandHandler')
atom.workspaceView.on('foo-command', commandHandler)
atom.keymap.bindKeys('name', '*', 'x': 'foo-command')
atom.keymaps.bindKeys('name', '*', 'x': 'foo-command')
describe "when a keydown event is triggered in the WorkspaceView", ->
it "triggers matching keybindings for that event", ->
+11 -7
Ver Arquivo
@@ -8,6 +8,7 @@ screen = require 'screen'
shell = require 'shell'
_ = require 'underscore-plus'
{deprecated} = require 'grim'
{Model} = require 'theorist'
fs = require 'fs-plus'
@@ -24,7 +25,7 @@ WindowEventHandler = require './window-event-handler'
# * `atom.config` - A {Config} instance
# * `atom.contextMenu` - A {ContextMenuManager} instance
# * `atom.deserializers` - A {DeserializerManager} instance
# * `atom.keymap` - A {Keymap} instance
# * `atom.keymaps` - A {Keymap} instance
# * `atom.menu` - A {MenuManager} instance
# * `atom.packages` - A {PackageManager} instance
# * `atom.project` - A {Project} instance
@@ -140,7 +141,7 @@ class Atom extends Model
@loadTime = null
Config = require './config'
Keymap = require './keymap-extensions'
KeymapManager = require './keymap-extensions'
PackageManager = require './package-manager'
Clipboard = require './clipboard'
Syntax = require './syntax'
@@ -157,7 +158,8 @@ class Atom extends Model
process.env.NODE_PATH = exportsPath
@config = new Config({configDirPath, resourcePath})
@keymap = new Keymap({configDirPath, resourcePath})
@keymaps = new KeymapManager({configDirPath, resourcePath})
@keymap = @keymaps # Deprecated
@packages = new PackageManager({devMode, configDirPath, resourcePath})
@themes = new ThemeManager({packageManager: @packages, configDirPath, resourcePath})
@contextMenu = new ContextMenuManager(devMode)
@@ -179,9 +181,11 @@ class Atom extends Model
# Deprecated: Callers should be converted to use atom.deserializers
registerRepresentationClass: ->
deprecated("Callers should be converted to use atom.deserializers")
# Deprecated: Callers should be converted to use atom.deserializers
registerRepresentationClasses: ->
deprecated("Callers should be converted to use atom.deserializers")
setBodyPlatformClass: ->
document.body.classList.add("platform-#{process.platform}")
@@ -244,7 +248,7 @@ class Atom extends Model
WorkspaceView = require './workspace-view'
@workspace = Workspace.deserialize(@state.workspace) ? new Workspace
@workspaceView = new WorkspaceView(@workspace)
@keymap.defaultTarget = @workspaceView[0]
@keymaps.defaultTarget = @workspaceView[0]
$(@workspaceViewParentSelector).append(@workspaceView)
deserializePackageStates: ->
@@ -269,12 +273,12 @@ class Atom extends Model
@config.load()
@config.setDefaults('core', require('./workspace-view').configDefaults)
@config.setDefaults('editor', require('./editor-view').configDefaults)
@keymap.loadBundledKeymaps()
@keymaps.loadBundledKeymaps()
@themes.loadBaseStylesheets()
@packages.loadPackages()
@deserializeEditorWindow()
@packages.activate()
@keymap.loadUserKeymap()
@keymaps.loadUserKeymap()
@requireUserInitScript()
@menu.update()
@@ -298,7 +302,7 @@ class Atom extends Model
@workspaceView = null
@project.destroy()
@windowEventHandler?.unsubscribe()
@keymap.destroy()
@keymaps.destroy()
@windowState = null
loadThemes: ->
+6 -7
Ver Arquivo
@@ -9,9 +9,6 @@ _ = require 'underscore-plus'
# and maintain the state of all menu items.
module.exports =
class ApplicationMenu
version: null
menu: null
constructor: (@version) ->
@menu = Menu.buildFromTemplate @getDefaultTemplate()
Menu.setApplicationMenu @menu
@@ -103,13 +100,16 @@ class ApplicationMenu
[
label: "Atom"
submenu: [
{ label: 'Reload', accelerator: 'Command+R', click: -> @focusedWindow()?.reload() }
{ label: 'Close Window', accelerator: 'Command+Shift+W', click: -> @focusedWindow()?.close() }
{ label: 'Toggle Dev Tools', accelerator: 'Command+Alt+I', click: -> @focusedWindow()?.toggleDevTools() }
{ label: 'Reload', accelerator: 'Command+R', click: => @focusedWindow()?.reload() }
{ label: 'Close Window', accelerator: 'Command+Shift+W', click: => @focusedWindow()?.close() }
{ label: 'Toggle Dev Tools', accelerator: 'Command+Alt+I', click: => @focusedWindow()?.toggleDevTools() }
{ label: 'Quit', accelerator: 'Command+Q', click: -> app.quit() }
]
]
focusedWindow: ->
_.find global.atomApplication.windows, (atomWindow) -> atomWindow.isFocused()
# Combines a menu template with the appropriate keystroke.
#
# * template:
@@ -147,7 +147,6 @@ class ApplicationMenu
modifiers = firstKeystroke.split('-')
key = modifiers.pop()
modifiers.push("Shift") if key != key.toLowerCase()
modifiers = modifiers.map (modifier) ->
modifier.replace(/shift/ig, "Shift")
.replace(/cmd/ig, "Command")
+13 -8
Ver Arquivo
@@ -125,7 +125,7 @@ class AtomApplication
# Configures required javascript environment flags.
setupJavaScriptArguments: ->
app.commandLine.appendSwitch 'js-flags', '--harmony_collections --harmony-proxies'
app.commandLine.appendSwitch 'js-flags', '--harmony'
# Enable updates unless running from a local build of Atom.
setupAutoUpdater: ->
@@ -169,25 +169,30 @@ class AtomApplication
# Registers basic application commands, non-idempotent.
handleEvents: ->
@on 'application:about', -> Menu.sendActionToFirstResponder('orderFrontStandardAboutPanel:')
@on 'application:run-all-specs', -> @runSpecs(exitWhenDone: false, resourcePath: global.devResourcePath)
@on 'application:run-benchmarks', -> @runBenchmarks()
@on 'application:quit', -> app.quit()
@on 'application:hide', -> Menu.sendActionToFirstResponder('hide:')
@on 'application:hide-other-applications', -> Menu.sendActionToFirstResponder('hideOtherApplications:')
@on 'application:unhide-all-applications', -> Menu.sendActionToFirstResponder('unhideAllApplications:')
@on 'application:new-window', -> @openPath(initialSize: @getFocusedWindowSize())
@on 'application:new-file', -> (@focusedWindow() ? this).openPath()
@on 'application:open', -> @promptForPath()
@on 'application:open-dev', -> @promptForPath(devMode: true)
@on 'application:minimize', -> Menu.sendActionToFirstResponder('performMiniaturize:')
@on 'application:zoom', -> Menu.sendActionToFirstResponder('zoom:')
@on 'application:bring-all-windows-to-front', -> Menu.sendActionToFirstResponder('arrangeInFront:')
@on 'application:inspect', ({x,y}) -> @focusedWindow().browserWindow.inspectElement(x, y)
@on 'application:open-documentation', -> shell.openExternal('https://atom.io/docs/latest/?app')
@on 'application:install-update', -> autoUpdater.quitAndInstall()
@on 'application:check-for-update', => @checkForUpdate()
if process.platform is 'darwin'
@on 'application:about', -> Menu.sendActionToFirstResponder('orderFrontStandardAboutPanel:')
@on 'application:bring-all-windows-to-front', -> Menu.sendActionToFirstResponder('arrangeInFront:')
@on 'application:hide', -> Menu.sendActionToFirstResponder('hide:')
@on 'application:hide-other-applications', -> Menu.sendActionToFirstResponder('hideOtherApplications:')
@on 'application:minimize', -> Menu.sendActionToFirstResponder('performMiniaturize:')
@on 'application:unhide-all-applications', -> Menu.sendActionToFirstResponder('unhideAllApplications:')
@on 'application:zoom', -> Menu.sendActionToFirstResponder('zoom:')
else
@on 'application:minimize', -> @focusedWindow()?.minimize()
@on 'application:zoom', -> @focusedWindow()?.maximize()
@openPathOnEvent('application:show-settings', 'atom://config')
@openPathOnEvent('application:open-your-config', 'atom://.atom/config')
@openPathOnEvent('application:open-your-init-script', 'atom://.atom/init-script')
+4
Ver Arquivo
@@ -138,6 +138,10 @@ class AtomWindow
getSize: -> @browserWindow.getSize()
minimize: -> @browserWindow.minimize()
maximize: -> @browserWindow.maximize()
handlesAtomCommands: ->
not @isSpecWindow() and @isWebViewFocused()
+1 -6
Ver Arquivo
@@ -9,12 +9,7 @@ optimist = require 'optimist'
nslog = require 'nslog'
dialog = require 'dialog'
console.log = (args...) ->
# TODO: Make NSLog work as expected
output = args.map((arg) -> JSON.stringify(arg)).join(" ")
nslog(output)
if process.platform isnt 'darwin'
fs.writeFileSync('debug.log', output, flag: 'a')
console.log = nslog
process.on 'uncaughtException', (error={}) ->
nslog(error.message) if error.message?
+1 -1
Ver Arquivo
@@ -86,7 +86,7 @@ class Config
hash = hash[key]
_.extend hash, defaults
@update()
@emit 'updated'
# Public: Get the path to the config file being used.
getUserConfigPath: ->
+9 -2
Ver Arquivo
@@ -315,12 +315,14 @@ class Cursor
# :includeNonWordCharacters - A {Boolean} indicating whether to include
# non-word characters in the default word regex.
# Has no effect if wordRegex is set.
# :allowPrevious - A {Boolean} indicating whether the beginning of the
# previous word can be returned.
#
# Returns a {Range}.
getBeginningOfCurrentWordBufferPosition: (options = {}) ->
allowPrevious = options.allowPrevious ? true
currentBufferPosition = @getBufferPosition()
previousNonBlankRow = @editor.buffer.previousNonBlankRow(currentBufferPosition.row)
previousNonBlankRow = @editor.buffer.previousNonBlankRow(currentBufferPosition.row) ? 0
scanRange = [[previousNonBlankRow, 0], currentBufferPosition]
beginningOfWordPosition = null
@@ -330,7 +332,12 @@ class Cursor
if not beginningOfWordPosition?.isEqual(currentBufferPosition)
stop()
beginningOfWordPosition or currentBufferPosition
if beginningOfWordPosition?
beginningOfWordPosition
else if allowPrevious
new Point(0, 0)
else
currentBufferPosition
# Public: Retrieves buffer position of previous word boundary. It might be on
# the current word, or the previous word.
+18 -2
Ver Arquivo
@@ -44,6 +44,7 @@ class EditorView extends View
@configDefaults:
fontFamily: ''
fontSize: 16
lineHeight: 1.3
showInvisibles: false
showIndentGuide: false
showLineNumbers: true
@@ -340,6 +341,7 @@ class EditorView extends View
@subscribe atom.config.observe 'editor.invisibles', (invisibles) => @setInvisibles(invisibles)
@subscribe atom.config.observe 'editor.fontSize', (fontSize) => @setFontSize(fontSize)
@subscribe atom.config.observe 'editor.fontFamily', (fontFamily) => @setFontFamily(fontFamily)
@subscribe atom.config.observe 'editor.lineHeight', (lineHeight) => @setLineHeight(lineHeight)
handleEvents: ->
@on 'focus', =>
@@ -747,6 +749,17 @@ class EditorView extends View
# Returns a {String} identifying the CSS `font-family`.
getFontFamily: -> @css("font-family")
# Public: Sets the line height of the editor.
#
# Calling this method has no effect when called on a mini editor.
#
# lineHeight - A {Number} without a unit suffix identifying the CSS
# `line-height`.
setLineHeight: (lineHeight) ->
return if @mini
@css('line-height', lineHeight)
@redraw()
# Public: Redraw the editor
redraw: ->
return unless @hasParent()
@@ -1324,14 +1337,17 @@ class EditorView extends View
return 0 if screenColumn == 0
tokenizedLine = @editor.displayBuffer.lineForRow(screenRow)
textContent = lineElement.textContent
left = 0
index = 0
for token in tokenizedLine.tokens
for char in token.value
for bufferChar in token.value
return left if index >= screenColumn
val = @getCharacterWidthCache(token.scopes, char)
# Invisibles might cause renderedChar to be different than bufferChar
renderedChar = textContent[index]
val = @getCharacterWidthCache(token.scopes, renderedChar)
if val?
left += val
else
+12 -2
Ver Arquivo
@@ -2,6 +2,7 @@ _ = require 'underscore-plus'
path = require 'path'
Serializable = require 'serializable'
Delegator = require 'delegato'
{deprecate} = require 'grim'
{Model} = require 'theorist'
{Point, Range} = require 'text-buffer'
LanguageMode = require './language-mode'
@@ -622,11 +623,18 @@ class Editor extends Model
# Public: For each cursor, insert a newline at the end of the preceding line.
insertNewlineAbove: ->
@transact =>
onFirstLine = @getCursorBufferPosition().row is 0
bufferRow = @getCursorBufferPosition().row
indentLevel = @indentationForBufferRow(bufferRow)
onFirstLine = bufferRow is 0
@moveCursorToBeginningOfLine()
@moveCursorLeft()
@insertNewline()
@moveCursorUp() if onFirstLine
@setIndentationForBufferRow(bufferRow, indentLevel) if @shouldAutoIndent()
if onFirstLine
@moveCursorUp()
@moveCursorToEndOfLine()
# Indent all lines intersecting selections. See {Selection::indent} for more
# information.
@@ -991,6 +999,7 @@ class Editor extends Model
# Deprecated: Use {::duplicateLines} instead.
duplicateLine: ->
deprecate("Use Editor::duplicateLines() instead")
@duplicateLines()
mutateSelectedText: (fn) ->
@@ -1758,4 +1767,5 @@ class Editor extends Model
# Deprecated: Call {::joinLines} instead.
joinLine: ->
deprecate("Use Editor::joinLines() instead")
@joinLines()
+24 -8
Ver Arquivo
@@ -1,9 +1,12 @@
{join, sep} = require 'path'
_ = require 'underscore-plus'
fs = require 'fs-plus'
Task = require './task'
{Emitter, Subscriber} = require 'emissary'
fs = require 'fs-plus'
GitUtils = require 'git-utils'
Task = require './task'
# Public: Represents the underlying git operations performed by Atom.
#
# This class shouldn't be instantiated directly but instead by accessing the
@@ -68,6 +71,9 @@ class Git
@statuses = {}
@upstream = {ahead: 0, behind: 0}
for submodulePath, submoduleRepo of @repo.submodules
submoduleRepo.upstream = {ahead: 0, behind: 0}
{@project, refreshOnWindowFocus} = options
refreshOnWindowFocus ?= true
@@ -125,13 +131,14 @@ class Git
# Returns a {Number} representing the status. This value can be passed to
# {::isStatusModified} or {::isStatusNew} to get more information.
getPathStatus: (path) ->
currentPathStatus = @statuses[path] ? 0
repo = @getRepo(path)
relativePath = @relativize(path)
currentPathStatus = @statuses[relativePath] ? 0
pathStatus = repo.getStatus(repo.relativize(path)) ? 0
if pathStatus > 0
@statuses[path] = pathStatus
@statuses[relativePath] = pathStatus
else
delete @statuses[path]
delete @statuses[relativePath]
if currentPathStatus isnt pathStatus
@emit 'status-changed', path, pathStatus
pathStatus
@@ -222,12 +229,14 @@ class Git
#
# Returns a {Boolean}.
isSubmodule: (path) ->
return false unless path
repo = @getRepo(path)
if repo.isSubmodule(repo.relativize(path))
true
else
# Check if the path is a working directory in a repo that isn't the root.
path is repo.getWorkingDirectory() and repo isnt @getRepo()
repo isnt @getRepo() and repo.relativize(join(path, 'dir')) is 'dir'
# Public: Get the status of a directory in the repository's working directory.
#
@@ -236,8 +245,7 @@ class Git
# Returns a {Number} representing the status. This value can be passed to
# {::isStatusModified} or {::isStatusNew} to get more information.
getDirectoryStatus: (directoryPath) ->
{sep} = require 'path'
directoryPath = "#{directoryPath}#{sep}"
directoryPath = "#{@relativize(directoryPath)}#{sep}"
directoryStatus = 0
for path, status of @statuses
directoryStatus |= status if path.indexOf(directoryPath) is 0
@@ -322,6 +330,14 @@ class Git
getCachedUpstreamAheadBehindCount: (path) ->
@getRepo(path).upstream ? @upstream
# Public: Get the cached status for the given path.
#
# path - A {String} path in the repository, relative or absolute.
#
# Returns a status {Number} or null if the path is not in the cache.
getCachedPathStatus: (path) ->
@statuses[@relativize(path)]
# Public: Returns true if the given branch exists.
hasBranch: (branch) -> @getReferenceTarget("refs/heads/#{branch}")?
+7 -7
Ver Arquivo
@@ -1,27 +1,27 @@
fs = require 'fs-plus'
path = require 'path'
Keymap = require 'atom-keymap'
KeymapManager = require 'atom-keymap'
CSON = require 'season'
{jQuery} = require 'space-pen'
Keymap::loadBundledKeymaps = ->
@loadKeyBindings(path.join(@resourcePath, 'keymaps'))
KeymapManager::loadBundledKeymaps = ->
@loadKeymap(path.join(@resourcePath, 'keymaps'))
@emit('bundled-keymaps-loaded')
Keymap::getUserKeymapPath = ->
KeymapManager::getUserKeymapPath = ->
if userKeymapPath = CSON.resolve(path.join(@configDirPath, 'keymap'))
userKeymapPath
else
path.join(@configDirPath, 'keymap.cson')
Keymap::loadUserKeymap = ->
KeymapManager::loadUserKeymap = ->
userKeymapPath = @getUserKeymapPath()
if fs.isFileSync(userKeymapPath)
@loadKeyBindings(userKeymapPath, watch: true, suppressErrors: true)
@loadKeymap(userKeymapPath, watch: true, suppressErrors: true)
# This enables command handlers registered via jQuery to call
# `.abortKeyBinding()` on the `jQuery.Event` object passed to the handler.
jQuery.Event::abortKeyBinding = ->
@originalEvent?.abortKeyBinding?()
module.exports = Keymap
module.exports = KeymapManager
+4 -1
Ver Arquivo
@@ -74,7 +74,10 @@ class LanguageMode
columnEnd = columnStart + match[2].length
buffer.change([[row, columnStart], [row, columnEnd]], "")
else
indent = @minIndentLevelForRowRange(start, end)
if start is end
indent = @editor.indentationForBufferRow(start)
else
indent = @minIndentLevelForRowRange(start, end)
indentString = @editor.buildIndentString(indent)
tabLength = @editor.getTabLength()
indentRegex = new RegExp("(\t|[ ]{#{tabLength}}){#{Math.floor(indent)}}")
+7 -6
Ver Arquivo
@@ -14,7 +14,7 @@ class MenuManager
constructor: ({@resourcePath}) ->
@pendingUpdateOperation = null
@template = []
atom.keymap.on 'bundled-keymaps-loaded', => @loadPlatformItems()
atom.keymaps.on 'bundled-keymaps-loaded', => @loadPlatformItems()
# Public: Adds the given item definition to the existing template.
#
@@ -59,7 +59,8 @@ class MenuManager
testBody.classList.add(@classesForElement(document.body)...)
testWorkspace = document.createElement('body')
workspaceClasses = @classesForElement(document.body.querySelector('.workspace')) ? ['.workspace']
workspaceClasses = @classesForElement(document.body.querySelector('.workspace'))
workspaceClasses = ['workspace'] if workspaceClasses.length is 0
testWorkspace.classList.add(workspaceClasses...)
testBody.appendChild(testWorkspace)
@@ -75,7 +76,7 @@ class MenuManager
clearImmediate(@pendingUpdateOperation) if @pendingUpdateOperation?
@pendingUpdateOperation = setImmediate =>
keystrokesByCommand = {}
for binding in atom.keymap.getKeyBindings() when @includeSelector(binding.selector)
for binding in atom.keymaps.getKeyBindings() when @includeSelector(binding.selector)
keystrokesByCommand[binding.command] ?= []
keystrokesByCommand[binding.command].unshift binding.keystroke
@sendToBrowserProcess(@template, keystrokesByCommand)
@@ -116,10 +117,10 @@ class MenuManager
normalizeLabel: (label) ->
return undefined unless label?
if process.platform is 'win32'
label.replace(/\&/g, '')
else
if process.platform is 'darwin'
label
else
label.replace(/\&/g, '')
# Get an {Array} of {String} classes for the given element.
classesForElement: (element) ->
+2 -2
Ver Arquivo
@@ -124,7 +124,7 @@ class Package
@stylesheetsActivated = true
activateResources: ->
atom.keymap.add(keymapPath, map) for [keymapPath, map] in @keymaps
atom.keymaps.add(keymapPath, map) for [keymapPath, map] in @keymaps
atom.contextMenu.add(menuPath, map['context-menu']) for [menuPath, map] in @menus
atom.menu.add(map.menu) for [menuPath, map] in @menus when map.menu
@@ -232,7 +232,7 @@ class Package
deactivateResources: ->
grammar.deactivate() for grammar in @grammars
scopedProperties.deactivate() for scopedProperties in @scopedProperties
atom.keymap.remove(keymapPath) for [keymapPath] in @keymaps
atom.keymaps.remove(keymapPath) for [keymapPath] in @keymaps
atom.themes.removeStylesheet(stylesheetPath) for [stylesheetPath] in @stylesheets
@stylesheetsActivated = false
@grammarsActivated = false
+2
Ver Arquivo
@@ -1,3 +1,4 @@
{deprecate} = require 'grim'
Delegator = require 'delegato'
{$, View} = require './space-pen-extensions'
PaneView = require './pane-view'
@@ -146,4 +147,5 @@ class PaneContainerView extends View
# Deprecated
getPanes: ->
deprecate("Use PaneContainerView::getPaneViews() instead")
@getPaneViews()
+36 -6
Ver Arquivo
@@ -1,5 +1,6 @@
{$, View} = require './space-pen-extensions'
Delegator = require 'delegato'
{deprecate} = require 'grim'
PropertyAccessors = require 'property-accessors'
Pane = require './pane'
@@ -19,6 +20,8 @@ class PaneView extends View
@content: (wrappedView) ->
@div class: 'pane', tabindex: -1, =>
@div class: 'pane-view-resize-horizontal-handle'
@div class: 'pane-view-resize-vertical-handle'
@div class: 'item-views', outlet: 'itemViews'
@delegatesProperties 'items', 'activeItem', toProperty: 'model'
@@ -43,6 +46,9 @@ class PaneView extends View
@handleEvents()
handleEvents: ->
@on 'mousedown', '.pane-view-resize-horizontal-handle', (e) => @resizeStarted(e)
@on 'mousedown', '.pane-view-resize-vertical-handle', (e) => @resizeStarted(e)
@subscribe @model.$activeItem, @onActiveItemChanged
@subscribe @model, 'item-added', @onItemAdded
@subscribe @model, 'item-removed', @onItemRemoved
@@ -81,22 +87,34 @@ class PaneView extends View
@command 'pane:close-other-items', => @destroyInactiveItems()
# Deprecated: Use ::destroyItem
removeItem: (item) -> @destroyItem(item)
removeItem: (item) ->
deprecate("Use PaneView::destroyItem instead")
@destroyItem(item)
# Deprecated: Use ::activateItem
showItem: (item) -> @activateItem(item)
showItem: (item) ->
deprecate("Use PaneView::activateItem instead")
@activateItem(item)
# Deprecated: Use ::activateItemForUri
showItemForUri: (item) -> @activateItemForUri(item)
showItemForUri: (item) ->
deprecate("Use PaneView::activateItemForUri instead")
@activateItemForUri(item)
# Deprecated: Use ::activateItemAtIndex
showItemAtIndex: (index) -> @activateItemAtIndex(index)
showItemAtIndex: (index) ->
deprecate("Use PaneView::activateItemAtIndex instead")
@activateItemAtIndex(index)
# Deprecated: Use ::activateNextItem
showNextItem: -> @activateNextItem()
showNextItem: ->
deprecate("Use PaneView::destroyItem instead")
@activateNextItem()
# Deprecated: Use ::activatePreviousItem
showPreviousItem: -> @activatePreviousItem()
showPreviousItem: ->
deprecate("Use PaneView::activatePreviousItem instead")
@activatePreviousItem()
afterAttach: (onDom) ->
@focus() if @model.focused and onDom
@@ -170,6 +188,18 @@ class PaneView extends View
activeItemTitleChanged: =>
@trigger 'pane:active-item-title-changed'
resizeStarted: =>
$(document.body).on('mousemove', @resizePaneView)
$(document.body).on('mouseup', @resizeStopped)
resizeStopped: =>
$(document.body).off('mousemove', @resizeTreeView)
$(document.body).off('mouseup', @resizeStopped)
resizePaneView: ({pageX}) =>
width = pageX
@css 'max-width', "#{width}px"
viewForItem: (item) ->
return unless item?
if item instanceof $
+7
Ver Arquivo
@@ -4,6 +4,7 @@ url = require 'url'
_ = require 'underscore-plus'
fs = require 'fs-plus'
Q = require 'q'
{deprecate} = require 'grim'
{Model} = require 'theorist'
{Emitter, Subscriber} = require 'emissary'
Serializable = require 'serializable'
@@ -127,6 +128,7 @@ class Project extends Model
# Deprecated
openSync: (filePath, options={}) ->
deprecate("Use Project::open instead")
filePath = @resolve(filePath)
@buildEditorForBuffer(@bufferForPathSync(filePath), options)
@@ -177,6 +179,7 @@ class Project extends Model
# DEPRECATED
buildBufferSync: (absoluteFilePath) ->
deprecate("Use Project::buildBuffer instead")
buffer = new TextBuffer({filePath: absoluteFilePath})
@addBuffer(buffer)
buffer.loadSync()
@@ -317,17 +320,21 @@ class Project extends Model
# Deprecated: delegate
registerOpener: (opener) ->
deprecate("Use Workspace::registerOpener instead")
@openers.push(opener)
# Deprecated: delegate
unregisterOpener: (opener) ->
deprecate("Use Workspace::unregisterOpener instead")
_.remove(@openers, opener)
# Deprecated: delegate
eachEditor: (callback) ->
deprecate("Use Workspace::eachEditor instead")
callback(editor) for editor in @getEditors()
@on 'editor-created', (editor) -> callback(editor)
# Deprecated: delegate
getEditors: ->
deprecate("Use Workspace::getEditors instead")
new Array(@editors...)
+5 -2
Ver Arquivo
@@ -13,7 +13,7 @@ module.exports = (repoPath) ->
# Statuses in main repo
workingDirectoryPath = repo.getWorkingDirectory()
for filePath, status of repo.getStatus()
statuses[path.join(workingDirectoryPath, filePath)] = status
statuses[filePath] = status
# Statuses in submodules
for submodulePath, submoduleRepo of repo.submodules
@@ -23,7 +23,10 @@ module.exports = (repoPath) ->
workingDirectoryPath = submoduleRepo.getWorkingDirectory()
for filePath, status of submoduleRepo.getStatus()
statuses[path.join(workingDirectoryPath, filePath)] = status
absolutePath = path.join(workingDirectoryPath, filePath)
# Make path relative to parent repository
relativePath = repo.relativize(absolutePath)
statuses[relativePath] = status
upstream = repo.getAheadBehindCount()
branch = repo.getHead()
+4 -4
Ver Arquivo
@@ -39,10 +39,10 @@ jQuery.fn.setTooltip = (tooltipOptions, {command, commandElement}={}) ->
tooltipOptions = {title: tooltipOptions} if _.isString(tooltipOptions)
bindings = if commandElement
atom.keymap.keyBindingsForCommandMatchingElement(command, commandElement)
else
atom.keymap.keyBindingsForCommand(command)
if commandElement
bindings = atom.keymaps.keyBindingsForCommandMatchingElement(command, commandElement)
else if command
bindings = atom.keymaps.keyBindingsForCommand(command)
tooltipOptions.title = "#{tooltipOptions.title} #{getKeystroke(bindings)}"
+28 -55
Ver Arquivo
@@ -1,7 +1,10 @@
_ = require 'underscore-plus'
{deprecate} = require 'grim'
{specificity} = require 'clear-cut'
{Subscriber} = require 'emissary'
{GrammarRegistry, ScopeSelector} = require 'first-mate'
ScopedPropertyStore = require 'scoped-property-store'
PropertyAccessors = require 'property-accessors'
{$, $$} = require './space-pen-extensions'
Token = require './token'
@@ -14,6 +17,7 @@ Token = require './token'
# language-specific comment regexes.
module.exports =
class Syntax extends GrammarRegistry
PropertyAccessors.includeInto(this)
Subscriber.includeInto(this)
atom.deserializers.add(this)
@@ -23,35 +27,31 @@ class Syntax extends GrammarRegistry
syntax
constructor: ->
super
@scopedPropertiesIndex = 0
@scopedProperties = []
super(maxTokensPerLine: 100)
@propertyStore = new ScopedPropertyStore
serialize: ->
{deserializer: @constructor.name, @grammarOverridesByPath}
createToken: (value, scopes) -> new Token({value, scopes})
# Deprecated: Used by settings-view to display snippets for packages
@::accessor 'scopedProperties', ->
deprecate("Use Syntax::getProperty instead")
@propertyStore.propertySets
addProperties: (args...) ->
name = args.shift() if args.length > 2
[selector, properties] = args
@scopedProperties.unshift(
name: name
selector: selector,
properties: properties,
specificity: specificity(selector),
index: @scopedPropertiesIndex++
)
propertiesBySelector = {}
propertiesBySelector[selector] = properties
@propertyStore.addProperties(name, propertiesBySelector)
removeProperties: (name) ->
for properties in @scopedProperties.filter((properties) -> properties.name is name)
_.remove(@scopedProperties, properties)
@propertyStore.removeProperties(name)
clearProperties: ->
@scopedProperties = []
@scopedPropertiesIndex = 0
@propertyStore = new ScopedPropertyStore
# Public: Get a property for the given scope and key path.
#
@@ -66,48 +66,21 @@ class Syntax extends GrammarRegistry
#
# Returns a {String} property value or undefined.
getProperty: (scope, keyPath) ->
for object in @propertiesForScope(scope, keyPath)
value = _.valueForKeyPath(object, keyPath)
return value if value?
undefined
scopeChain = scope
.map (scope) ->
scope = ".#{scope}" unless scope.indexOf('.') is 0
scope
.join(' ')
@propertyStore.getPropertyValue(scopeChain, keyPath)
propertiesForScope: (scope, keyPath) ->
matchingProperties = []
candidates = @scopedProperties.filter ({properties}) -> _.valueForKeyPath(properties, keyPath)?
if candidates.length
element = @buildScopeElement(scope)
while element
matchingProperties.push(@matchingPropertiesForElement(element, candidates)...)
element = element.parentNode
matchingProperties
scopeChain = scope
.map (scope) ->
scope = ".#{scope}" unless scope.indexOf('.') is 0
scope
.join(' ')
matchingPropertiesForElement: (element, candidates) ->
matchingScopedProperties = candidates.filter ({selector}) ->
$.find.matchesSelector(element, selector)
matchingScopedProperties.sort (a, b) ->
if a.specificity == b.specificity
b.index - a.index
else
b.specificity - a.specificity
_.pluck matchingScopedProperties, 'properties'
buildScopeElement: (scope) ->
scope = scope.slice()
element = $$ ->
elementsForRemainingScopes = =>
classString = scope.shift()
classes = classString.replace(/^\./, '').replace(/\./g, ' ')
if scope.length
@div class: classes, elementsForRemainingScopes
else
@div class: classes
elementsForRemainingScopes()
deepestChild = element.find(":not(:has(*))")
if deepestChild.length
deepestChild[0]
else
element[0]
@propertyStore.getProperties(scopeChain, keyPath)
cssSelectorFromScopeSelector: (scopeSelector) ->
new ScopeSelector(scopeSelector).toCssSelector()
+1 -1
Ver Arquivo
@@ -55,7 +55,7 @@ class WindowEventHandler
@subscribeToCommand $(document), 'core:focus-previous', @focusPrevious
@subscribe $(document), 'keydown', (event) ->
atom.keymap.handleKeyEvent(event)
atom.keymaps.handleKeyEvent(event)
@subscribe $(document), 'drop', (e) ->
e.preventDefault()
+8 -3
Ver Arquivo
@@ -3,6 +3,7 @@ path = require 'path'
Q = require 'q'
_ = require 'underscore-plus'
Delegator = require 'delegato'
{deprecate, logDeprecationWarnings} = require 'grim'
scrollbarStyle = require 'scrollbar-style'
{$, $$, View} = require './space-pen-extensions'
fs = require 'fs-plus'
@@ -78,7 +79,7 @@ class WorkspaceView extends View
@div class: 'panes', outlet: 'panes'
initialize: (@model) ->
@model ?= new Workspace
@model = atom.workspace ? new Workspace unless @model?
panes = new PaneContainerView(@model.paneContainer)
@panes.replaceWith(panes)
@@ -140,8 +141,8 @@ class WorkspaceView extends View
@command 'window:focus-pane-on-left', => @focusPaneViewOnLeft()
@command 'window:focus-pane-on-right', => @focusPaneViewOnRight()
@command 'window:save-all', => @saveAll()
@command 'window:toggle-invisibles', =>
atom.config.toggle("editor.showInvisibles")
@command 'window:toggle-invisibles', -> atom.config.toggle("editor.showInvisibles")
@command 'window:log-deprecation-warnings', -> logDeprecationWarnings()
@command 'window:toggle-auto-indent', =>
atom.config.toggle("editor.autoIndent")
@@ -334,16 +335,20 @@ class WorkspaceView extends View
# Deprecated
eachPane: (callback) ->
deprecate("Use WorkspaceView::eachPaneView instead")
@eachPaneView(callback)
# Deprecated
getPanes: ->
deprecate("Use WorkspaceView::getPaneViews instead")
@getPaneViews()
# Deprecated
getActivePane: ->
deprecate("Use WorkspaceView::getActivePaneView instead")
@getActivePaneView()
# Deprecated: Call {Workspace::getActivePaneItem} instead.
getActivePaneItem: ->
deprecate("Use Workspace::getActivePaneItem instead")
@model.activePaneItem
+4 -1
Ver Arquivo
@@ -1,3 +1,4 @@
{deprecate} = require 'grim'
{remove, last} = require 'underscore-plus'
{join} = require 'path'
{Model} = require 'theorist'
@@ -33,7 +34,7 @@ class Workspace extends Model
when 'atom://.atom/stylesheet'
@open(atom.themes.getUserStylesheetPath())
when 'atom://.atom/keymap'
@open(atom.keymap.getUserKeymapPath())
@open(atom.keymaps.getUserKeymapPath())
when 'atom://.atom/config'
@open(atom.config.getUserConfigPath())
when 'atom://.atom/init-script'
@@ -114,6 +115,8 @@ class Workspace extends Model
# :activatePane - A {Boolean} indicating whether to call {Pane::activate} on
# the containing pane. Defaults to `true`.
openSync: (uri='', options={}) ->
deprecate("Don't use the `changeFocus` option") if options.changeFocus?
{initialLine} = options
# TODO: Remove deprecated changeFocus option
activatePane = options.activatePane ? options.changeFocus ? true
+22
Ver Arquivo
@@ -48,3 +48,25 @@
}
}
}
.pane-view-resize-horizontal-handle {
position: absolute;
top: 0;
bottom: 0;
right: 0;
cursor: col-resize;
z-index: 3;
background-color: red;
width: 2px;
}
.pane-view-resize-vertical-handle {
position: absolute;
bottom: 0;
left: 0;
right: 0;
cursor: row-resize;
z-index: 3;
background-color: red;
height: 2px;
}
externo
+1 -1
Submodule vendor/apm updated: 3f0003c60e...2ce1206e67