Comparar commits

...

1245 Commits

Autor SHA1 Mensagem Data
Kevin Sawicki 46ff794c8b Don't set the update query param on Windows 2014-11-19 15:58:51 -08:00
Ben Ogle 1406fbfe03 Merge pull request #4243 from atom/bo-remove-space-pen-docs
Remove space pen views from docs
2014-11-19 14:33:53 -08:00
Ben Ogle dde13a5d4e 💄 2014-11-19 14:33:24 -08:00
Ben Ogle bfc7995aee Blacklist space pen docs from making it into our docs. 2014-11-19 14:15:43 -08:00
Ben Ogle 7fd9c75d24 Hide the space pen views in the docs 2014-11-19 14:15:18 -08:00
Nathan Sobo 677be2df82 Merge pull request #4223 from atom/ns-deprecate-style-sheet-events
Deprecate style sheet event methods on ThemeManager
2014-11-19 14:59:20 -07:00
Kevin Sawicki b3bf47dd69 Prepare 0.149 2014-11-19 12:17:49 -08:00
Ben Ogle a25920da72 Merge pull request #4225 from atom/bo-error-events
Add onWillThrowError
2014-11-19 11:55:45 -08:00
Kevin Sawicki 9b28e7a47c Merge pull request #4240 from atom/ks-write-text-async-to-selection-clipboard
Write text async to selection clipboard
2014-11-19 11:52:46 -08:00
Ben Ogle db811cfa9e Upgrade metrics to use the new onDidThrowError arg 2014-11-19 11:38:50 -08:00
Kevin Sawicki 6d0be70dbc Spy on ipc.send and make it synchronous 2014-11-19 11:32:20 -08:00
Ben Ogle 74966bd547 Emit an event object from atom.onDidThrowError 2014-11-19 11:28:01 -08:00
Kevin Sawicki 488abc8c24 📝 Mention why ipc is used 2014-11-19 11:19:55 -08:00
Kevin Sawicki 362d7712ad Add selection type 2014-11-19 11:19:55 -08:00
Kevin Sawicki 6ed3626133 Remove sync call 2014-11-19 11:19:55 -08:00
Kevin Sawicki fc87c98261 Use async ipc call to write to selection clipboard 2014-11-19 11:19:55 -08:00
Max Brunsfeld 46a7ea5936 Merge pull request #4239 from atom/mb-always-normalize-indent-on-paste
Remove the `normalizeIndentOnPaste` setting. Always do it.
2014-11-19 11:14:31 -08:00
Max Brunsfeld f412d88edd ⬆️ language-sass@0.26.0 2014-11-19 09:33:24 -08:00
Nathan Sobo 49471070a3 Move public stylesheet related methods off of atom.themes
* Move atom.themes.getUserStylesheetPath to 
  atom.styles.getUserStyleSheetPath
* Deprecate atom.themes.requireStylesheet
2014-11-19 10:31:03 -07:00
Max Brunsfeld 0ca9d7b97e Remove the normalizeIndentOnPaste setting. Always do it. 2014-11-19 09:13:30 -08:00
Max Brunsfeld d42878164a ⬆️ language-yaml@0.20.0 2014-11-19 08:40:46 -08:00
Max Brunsfeld 9adad17e27 📝 Doc fullLine parameter to Selection::{copy,cut} 2014-11-18 22:38:20 -08:00
Max Brunsfeld be420b042c Merge pull request #4233 from atom/mb-paste-full-line
Add special paste behavior when copying/cutting w/ no selection
2014-11-18 22:26:23 -08:00
Max Brunsfeld 270642b2ea Add special paste behavior when copying/cutting w/ no selection 2014-11-18 18:58:25 -08:00
Max Brunsfeld 9a080bfd1b Merge pull request #4231 from atom/mb-fix-newline-indent
Restore correct indent behavior when inserting newlines
2014-11-18 17:38:55 -08:00
Max Brunsfeld 7c43ea7a0f Restore correct indent behavior when inserting newlines
When explicitly auto-indenting and when pasting, indentation is based
on the previous non-blank line. When simply inserting newlines,
the previous line is used, even if it is blank.

Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-18 17:27:43 -08:00
Kevin Sawicki 28c5bd7814 Use .ico icon URL 2014-11-18 16:58:57 -08:00
Kevin Sawicki 8c3bae4275 Kill the comma in the authors tag 2014-11-18 16:57:35 -08:00
Kevin Sawicki 71e3ab9d2b Try using comma entity 2014-11-18 16:50:12 -08:00
Kevin Sawicki a1634b2f9b ⬆️ grunt-atom-shell-installer@0.10 2014-11-18 16:44:43 -08:00
Kevin Sawicki fb6351d9d7 ⬆️ grunt-atom-shell-installer@0.9 2014-11-18 16:32:03 -08:00
Kevin Sawicki 90041b7115 Match author field to company name and cert 2014-11-18 16:25:30 -08:00
Kevin Sawicki d6ba6067b8 💄 2014-11-18 16:06:03 -08:00
Kevin Sawicki aface45084 Merge pull request #4224 from atom/ks-squirrel-events
Port chocolatey install actions to squirrel events
2014-11-18 15:37:04 -08:00
Kevin Sawicki 16fc52b351 Compute reg/setx paths once 2014-11-18 15:23:07 -08:00
Kevin Sawicki 56184be6fe Add missing comma 2014-11-18 15:23:07 -08:00
Kevin Sawicki 8f623db092 Add path argument to context menu commands 2014-11-18 15:23:07 -08:00
Kevin Sawicki 081c2efc98 Use reg/setx from %SystemRoot%\System32 folder 2014-11-18 15:23:07 -08:00
Kevin Sawicki 3296674605 📝 Doc spawn 2014-11-18 15:23:07 -08:00
Kevin Sawicki 1e18e2b4e5 📝 Doc removeCommandsFromPath 2014-11-18 15:23:07 -08:00
Kevin Sawicki 13b28c26f0 Add example reg query output 2014-11-18 15:23:07 -08:00
Kevin Sawicki 760f6d280a Remove bin folder from path on uninstall 2014-11-18 15:23:07 -08:00
Kevin Sawicki f39ca3ea48 Always return on error 2014-11-18 15:23:06 -08:00
Kevin Sawicki d379582248 Map a query exit code of 1 to the Path not being set 2014-11-18 15:23:06 -08:00
Kevin Sawicki 84f160f88e Capture stderr 2014-11-18 15:23:06 -08:00
Kevin Sawicki c3d1dd82f0 Handle empty path correctly 2014-11-18 15:23:06 -08:00
Kevin Sawicki 32ff599a61 stdoutg -> stdout 2014-11-18 15:23:06 -08:00
Kevin Sawicki cbdf93b075 Log path lookup 2014-11-18 15:23:06 -08:00
Kevin Sawicki c721300be4 📝 Add more comments 2014-11-18 15:23:06 -08:00
Kevin Sawicki 6630147b69 Spawn setx directly 2014-11-18 15:23:06 -08:00
Kevin Sawicki 08076a4af1 Only call callback once 2014-11-18 15:23:06 -08:00
Kevin Sawicki b9897d8b34 apm not atom 2014-11-18 15:23:06 -08:00
Kevin Sawicki 68fbff59d8 Add apm command stub 2014-11-18 15:23:05 -08:00
Kevin Sawicki 0b2bd468b5 Disable echo in atom.cmd 2014-11-18 15:23:05 -08:00
Kevin Sawicki a36eae8e4d Use setx to set path 2014-11-18 15:23:05 -08:00
Kevin Sawicki ed23058af0 Disable echo in command shim 2014-11-18 15:23:05 -08:00
Kevin Sawicki c3d8f4843a Use root atom folder in bin folder path 2014-11-18 15:23:05 -08:00
Kevin Sawicki 085933c55e Add logging 2014-11-18 15:23:05 -08:00
Kevin Sawicki 01987cb762 Use fs-plus 2014-11-18 15:23:05 -08:00
Kevin Sawicki 75a6c51ac7 Install atom command stub 2014-11-18 15:23:05 -08:00
Kevin Sawicki 1575ee9037 Return early on errors 2014-11-18 15:23:05 -08:00
Kevin Sawicki 64612d4734 Remove logging 2014-11-18 15:23:04 -08:00
Kevin Sawicki 3aac342c21 💄 2014-11-18 15:23:04 -08:00
Kevin Sawicki 69d3b3cfa2 Add missing /d argument 2014-11-18 15:23:04 -08:00
Kevin Sawicki 84232d76de Add missing /v argument 2014-11-18 15:23:04 -08:00
Kevin Sawicki dc69b07045 Log updates 2014-11-18 15:23:04 -08:00
Kevin Sawicki 971539c438 Add bin to path during install 2014-11-18 15:23:04 -08:00
Kevin Sawicki c36be85dd6 Ignore empty lines 2014-11-18 15:23:04 -08:00
Kevin Sawicki 4bbc498d1d Split on all newline characters 2014-11-18 15:23:04 -08:00
Kevin Sawicki 3ac992d5d5 Spawn command argument 2014-11-18 15:23:04 -08:00
Kevin Sawicki ddbedcee3e Add more logging 2014-11-18 15:23:04 -08:00
Kevin Sawicki ba8cc9e1c0 Call callback 2014-11-18 15:23:03 -08:00
Kevin Sawicki ec4a2a468e Call getPath from updatePath 2014-11-18 15:23:03 -08:00
Kevin Sawicki f09423e020 Log path from registry 2014-11-18 15:23:03 -08:00
Kevin Sawicki 7e34e8c4ed Call addToRegisry from installMenu 2014-11-18 15:23:03 -08:00
Kevin Sawicki cc785de974 Implementing uninstalling context menus 2014-11-18 15:23:03 -08:00
Kevin Sawicki a8c4d2e4ca Remove unused methods 2014-11-18 15:23:03 -08:00
Kevin Sawicki d918eb6fa7 Install directory menus 2014-11-18 15:23:03 -08:00
Kevin Sawicki 69efdc2292 Remove logging 2014-11-18 15:23:03 -08:00
Kevin Sawicki fc891f8706 Add missing callback params 2014-11-18 15:23:03 -08:00
Kevin Sawicki 9fc96ba7d4 Add more logging 2014-11-18 15:23:02 -08:00
Kevin Sawicki b8a263c570 Ignore errors 2014-11-18 15:23:02 -08:00
Kevin Sawicki c9a9b51238 Add add argument 2014-11-18 15:23:02 -08:00
Kevin Sawicki 13d16b4723 Log arguments 2014-11-18 15:23:02 -08:00
Kevin Sawicki ddacfd7d5f Use code when signal is not set 2014-11-18 15:23:02 -08:00
Kevin Sawicki 932207b106 Log errors 2014-11-18 15:23:02 -08:00
Kevin Sawicki 2c39f3515b Add force option 2014-11-18 15:23:02 -08:00
Kevin Sawicki 8e53b2d507 Add Open with Atom file context menu 2014-11-18 15:23:02 -08:00
Ben Ogle 9bd7141359 Upgrade deprecation cop for some issue fixes 2014-11-18 15:09:43 -08:00
Ben Ogle e534997bf9 Specs for the error handler. 2014-11-18 14:42:03 -08:00
Ben Ogle db9de34993 Add onWillThrowError 2014-11-18 14:42:03 -08:00
Max Brunsfeld 6f95f51da2 ⬆️ language-coffee-script@0.38.0 2014-11-18 11:05:02 -08:00
Max Brunsfeld a67743b5cd ⬆️ language-python@0.24.0 2014-11-18 11:04:27 -08:00
Ben Ogle 2a56e70110 Fix logCursorScopes
Close #4204
2014-11-18 11:00:11 -08:00
Ben Ogle eaedb14942 Upgrade command-palette to use new APIs 2014-11-18 10:50:57 -08:00
Kevin Sawicki c7cd084e24 ⬆️ settings-view@0.161 2014-11-18 10:47:12 -08:00
Kevin Sawicki 685a2c088b Prepare 0.148 2014-11-18 10:14:48 -08:00
Nathan Sobo be7111f007 Deprecate style sheet events on ThemeManager
They are now supplanted by methods on the StyleManager located at
`atom.styles`.
2014-11-18 10:57:07 -07:00
Nathan Sobo 59c28c0f76 Clarify documentation 2014-11-18 10:56:28 -07:00
Nathan Sobo 27331cb379 Publicize and document StyleManager 2014-11-18 10:50:55 -07:00
Nathan Sobo 52b5fff537 Make link more specific in guide doc 2014-11-18 10:36:14 -07:00
Kevin Sawicki 6fbd9fb8f8 Add loading gif for installer 2014-11-18 09:05:13 -08:00
Max Brunsfeld 5996fcbc83 Merge pull request #4219 from atom/mb-normalize-multicursor-indent
Normalize indent on paste with multiple selections
2014-11-17 20:08:17 -08:00
Max Brunsfeld e34eb151ca Respect 'normalizeIndentOnPaste even w/ multiple selections 2014-11-17 19:24:37 -08:00
Max Brunsfeld 4ee1987af4 Don't rely on clipboard metadata format in editor specs
In order to fix indent-normalization with multiple selections,
I want to change the format of this metadata
2014-11-17 19:23:02 -08:00
Nathan Sobo 91652e1174 Fix link, add link 2014-11-17 20:02:44 -07:00
Ben Ogle cbf22201e6 Merge pull request #3922 from atom/bo-deprecate-exports
Deprecate exports
2014-11-17 18:00:57 -08:00
Kevin Sawicki 040b99b2ff ⬆️ rcedit@0.3 2014-11-17 17:54:23 -08:00
Max Brunsfeld c4eecbb380 💄 2014-11-17 17:47:22 -08:00
Kevin Sawicki d235180547 ⬆️ rcedit@0.2 to handle spawn errors 2014-11-17 17:39:28 -08:00
Ben Ogle a42b560c24 Dont allow TextEditor export in tasks 2014-11-17 17:38:11 -08:00
Kevin Sawicki 2894d87ff8 Listen for spawn error events and log them 2014-11-17 17:34:54 -08:00
Ben Ogle b15e101b20 Merge pull request #4214 from atom/upgrading-themes
Upgrading theme guides
2014-11-17 17:23:46 -08:00
Max Brunsfeld 6cf52a7fb7 Merge branch 'mb-cleanup-editor-spec' 2014-11-17 17:10:40 -08:00
Kevin Sawicki 8cf20a6996 Merge pull request #4215 from atom/ks-toggle-menu-bar
Support automatically hiding the menu bar
2014-11-17 17:07:04 -08:00
Max Brunsfeld 24432018ec Reorganize editor auto-indent specs 2014-11-17 16:59:57 -08:00
Max Brunsfeld 5ec38f84c5 Reorganize editor normalizeIndentOnPaste specs 2014-11-17 16:59:56 -08:00
Kevin Sawicki 40ffe2a306 📝 Swap OS order 2014-11-17 16:52:48 -08:00
Ben Ogle b1eceb03dc Export TextEditor 2014-11-17 16:51:29 -08:00
Ben Ogle dde69f8da4 Remove the docs readme
It is not used and just displays mis-information
2014-11-17 16:50:33 -08:00
Ben Ogle a525d5267b Deprecate the Workspace classes 2014-11-17 16:50:33 -08:00
Ben Ogle f7951aa57c Update messages so they are less painful in specs 2014-11-17 16:50:33 -08:00
Ben Ogle a63e058fa5 Deprecate all the views 2014-11-17 16:50:32 -08:00
Ben Ogle 09327eae75 Add jquery to dependencies. 2014-11-17 16:50:32 -08:00
Ben Ogle edd48d71ae Add event-kit to exports 2014-11-17 16:50:02 -08:00
Ben Ogle 2faf8bc57b Deprecate exported react 2014-11-17 16:50:02 -08:00
Ben Ogle aac3d7a559 Deprecate space-pen exports 2014-11-17 16:50:02 -08:00
Ben Ogle d914ae2a62 Use new panel classes 2014-11-17 16:46:56 -08:00
Ben Ogle 2710d40403 Change link titles 2014-11-17 16:46:56 -08:00
Ben Ogle d327d4923f Stylesheets -> Selectors 2014-11-17 16:46:56 -08:00
Ben Ogle dd0bed9bff Add .overlay to the list 2014-11-17 16:46:56 -08:00
Ben Ogle ff78a5b075 Add bit about deprecation cop 2014-11-17 16:46:56 -08:00
Ben Ogle 856370f522 Add one more bullet point 2014-11-17 16:46:56 -08:00
Ben Ogle 041d3f5c4c Fix link 2014-11-17 16:46:56 -08:00
Ben Ogle 3969c71932 Add some comments to the examples for clarity 2014-11-17 16:46:56 -08:00
Ben Ogle 133bf0cedb Update title to reference packages too 2014-11-17 16:46:56 -08:00
Ben Ogle f168aafc33 Tiny 💄 change 2014-11-17 16:46:56 -08:00
Ben Ogle d237b3448c Add theme guides to the index 2014-11-17 16:46:56 -08:00
Nathan Sobo bbaf908bb2 Add example links 2014-11-17 16:46:56 -08:00
Nathan Sobo 9d947d994e Add syntax theme upgrade guide 2014-11-17 16:46:56 -08:00
Nathan Sobo e2ecff5e23 Talk about context-targeted style sheets 2014-11-17 16:46:56 -08:00
Nathan Sobo decae9e34c Start on upgrading UI theme guide 2014-11-17 16:46:55 -08:00
Kevin Sawicki 4896741f0c 📝 Mention Alt toggles 2014-11-17 16:40:15 -08:00
Kevin Sawicki c360ccc62b Only register command on Windows & Linux 2014-11-17 16:40:15 -08:00
Kevin Sawicki 913c002ee4 🐧 Add Toggle Menu Bar to View menu 2014-11-17 16:40:15 -08:00
Kevin Sawicki 59c405d846 Mention Alt shows the menu bar 2014-11-17 16:40:15 -08:00
Kevin Sawicki a9826653e1 Set autoHideMenuBar on properties object 2014-11-17 16:40:15 -08:00
Kevin Sawicki b47d52d919 Always set menu bar visibility when changing autohide 2014-11-17 16:40:15 -08:00
Kevin Sawicki 7422f0ab1b Set menu bar visible when no longer autohiding 2014-11-17 16:40:15 -08:00
Kevin Sawicki 18c6c84d35 ⬆️ donna@1.0.7 2014-11-17 16:40:15 -08:00
Kevin Sawicki 7bcf92e55a Implement menu bar toggling 2014-11-17 16:40:14 -08:00
Kevin Sawicki ee7d4003de Add toggle menu bar item 2014-11-17 16:40:14 -08:00
Kevin Sawicki 79e50084a9 Set description, not title 2014-11-17 16:40:14 -08:00
Kevin Sawicki 73a70d430f Add core.autoHideMenuBar 2014-11-17 16:40:14 -08:00
Kevin Sawicki 503b4ce2a4 ⬆️ legal-eagle@0.6 2014-11-17 16:40:03 -08:00
Ben Ogle 094ccbc1f2 Upgrade themes to fix git-status tree-view colors 2014-11-17 16:37:21 -08:00
Ben Ogle 434ab5174b Merge pull request #4216 from atom/bo-panel-classes
Use classes on atom-panels rather than location attributes
2014-11-17 16:20:23 -08:00
Ben Ogle 1b85810735 Use classes rather than location attributes 2014-11-17 16:07:53 -08:00
Ben Ogle 0c75a4fd9c Upgrade deprecation-cop
Fixes suggestion to use .editor[mini] to suggest
atom-text-editor
2014-11-17 15:57:03 -08:00
Nathan Sobo d3f2798472 💄 2014-11-17 16:55:30 -07:00
Kevin Sawicki c88c18c042 ⬆️ legal-eagle@0.5 2014-11-17 15:40:03 -08:00
Kevin Sawicki cb7d4c8638 Call exit on process global 2014-11-17 15:40:03 -08:00
Max Brunsfeld 4a9d0ab4d3 Merge pull request #4192 from atom/mb-auto-indent-on-paste
Add auto-indent when pasting
2014-11-17 15:22:15 -08:00
Kevin Sawicki ac029d300a Merge pull request #4196 from atom/atom-shell-v0.19.2
Upgrade to atom-shell@0.19.2
2014-11-17 13:37:30 -08:00
Max Brunsfeld 8fe0b7fb7b Update description of 'autoIndent' config option 2014-11-17 11:02:22 -08:00
Max Brunsfeld c6c58ebc3e Remove extra blank line 2014-11-17 11:00:24 -08:00
Max Brunsfeld 32ac99fd3e Add description to 'editor.autoIndent' config option 2014-11-17 10:47:58 -08:00
Max Brunsfeld 175a8b6968 Provide separate config option for auto-indent on paste
This way, this option (`autoIndentOnPaste`) can be turned off for
indentation-sensitive languages like coffeescript.
2014-11-17 10:30:13 -08:00
Kevin Sawicki 6708388c29 Merge pull request #4211 from atom/ks-middle-paste-on-linux
Support middle mouse paste on Linux
2014-11-17 09:59:32 -08:00
Kevin Sawicki 958b19bd83 Cover empty clipboard case 2014-11-17 09:08:29 -08:00
Kevin Sawicki e40dc5c4a6 💄 2014-11-17 08:54:41 -08:00
Kevin Sawicki 12ff54c0bd Add spec for middle mouse paste 2014-11-17 08:54:37 -08:00
Max Brunsfeld 83040d13c7 Base suggested indent level on previous non-blank row
Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-17 08:53:29 -08:00
Max Brunsfeld ebc9a6bf51 Don't auto-indent current line when pasting after non-whitespace characters
Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-17 08:53:14 -08:00
Max Brunsfeld c8ad232c31 Respect the editor.autoIndent option when pasting
Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-17 08:52:51 -08:00
Kevin Sawicki cfd918977b Only paste on middle mouse button 2014-11-17 08:43:16 -08:00
Kevin Sawicki e7efaeaf17 Listen for middle mouse paste on linux 2014-11-17 08:39:56 -08:00
Kevin Sawicki e849fc45ff Merge pull request #4209 from stramel/patch-1
Update linux.md
2014-11-17 08:39:02 -08:00
Kevin Sawicki 9054c7a120 ⬆️ language-c@0.31 2014-11-17 08:38:24 -08:00
Michael Stramel 60c042bd81 Update linux.md
Update `git fetch` command to include the prune flag which will remove remote branches that no longer exist.
2014-11-17 10:25:04 -06:00
Cheng Zhao 495ba3571e ⬆️ atom-shell@0.19.2 2014-11-15 17:14:10 +08:00
Ben Ogle b8776425fd Merge pull request #4194 from atom/bo-fix-scoped-config-default
Fix resetting scoped config defaults
2014-11-14 15:41:04 -08:00
Ben Ogle 693fd43449 Fix resetting scoped config defaults
It would write an empty object for the parent key when there were no
other objects in the parent key.

Closes #4175
2014-11-14 15:11:43 -08:00
Kevin Sawicki 71f80809c0 Assign buildDir at top of function 2014-11-14 14:59:06 -08:00
Kevin Sawicki db13a40f0a Remove outdated markdown task 2014-11-14 14:47:25 -08:00
Kevin Sawicki edf7e06b8d Merge pull request #4191 from atom/ks-upload-windows-installer
Upload Squirrel Windows assets to releases
2014-11-14 14:44:50 -08:00
Kevin Sawicki 442abece14 Create windows installer on CI 2014-11-14 14:17:07 -08:00
Kevin Sawicki 5c143bfc6e Return assets 2014-11-14 14:14:16 -08:00
Kevin Sawicki 51354f2326 Upload RELEASES and .nupkg files 2014-11-14 14:13:44 -08:00
Kevin Sawicki 1177508a45 Add missing ) 2014-11-14 12:02:15 -08:00
Kevin Sawicki 4bbffd3589 Upload AtomSetup.exe on Windows 2014-11-14 12:00:20 -08:00
Ben Ogle 2266c794b4 Upgrade tabs and themes
Scrolls when lots of tabs
2014-11-14 11:06:42 -08:00
Max Brunsfeld 562ee58506 Merge pull request #4188 from atom/mb-small-cleanup
Clean up TextEditor::pasteText
2014-11-14 10:00:22 -08:00
Max Brunsfeld fa96adc2ce Clean up TextEditor::pasteText 2014-11-14 09:33:48 -08:00
Nathan Sobo c46088e89a Merge pull request #4165 from atom/ns-shadow-dom-style-updates
Make it easier to style atom-text-editor from outside its shadow root
2014-11-14 08:18:35 -07:00
Kevin Sawicki 131ae0f9f7 Add visible to picked keys 2014-11-13 17:54:14 -08:00
Kevin Sawicki 49828b9681 Merge pull request #3815 from atom/squirrel-win-updates
Set up auto-updates on Windows
2014-11-13 17:53:29 -08:00
Kevin Sawicki 141430ab0a 💄 2014-11-13 17:37:29 -08:00
Kevin Sawicki 807b4b223b Remove update menu items on Windows
These will be re-added before the first release where squirrel update
assets are available on the release.
2014-11-13 17:31:40 -08:00
Kevin Sawicki 89246f213a ⬆️ to grunt-atom-shell-installer@0.7 2014-11-13 17:31:07 -08:00
Kevin Sawicki a6fa2ff30a Use installUpdate 2014-11-13 17:31:07 -08:00
Kevin Sawicki 7f32c9a3f7 Don't auto check when setting feed URL 2014-11-13 17:31:07 -08:00
Kevin Sawicki 18b2433a99 Remove call to deleted function 2014-11-13 17:31:07 -08:00
Kevin Sawicki 51b9964f7e Don't wrap in cmd.exe 2014-11-13 17:31:07 -08:00
Kevin Sawicki 9084122a5c cmdArgs -> args 2014-11-13 17:31:07 -08:00
Kevin Sawicki 9ff07e0fc2 💄 2014-11-13 17:31:07 -08:00
Kevin Sawicki 7ba47840d8 Consolidate squirrel update code 2014-11-13 17:31:07 -08:00
Kevin Sawicki 327e8476dd 💄 2014-11-13 17:31:06 -08:00
Kevin Sawicki 18eaec374c Spawn Update.exe through cmd.exe /s /c 2014-11-13 17:31:06 -08:00
Kevin Sawicki 430a36ac42 Call spawn on ChildProcess 2014-11-13 17:31:06 -08:00
Kevin Sawicki 508ca12be9 spawn -> spawnUpdate 2014-11-13 17:31:06 -08:00
Kevin Sawicki adf7e17fce Use spawn instead of execFile 2014-11-13 17:31:06 -08:00
Kevin Sawicki 9c675f387a Use spawn instead of execFile for squirrel events 2014-11-13 17:31:06 -08:00
Kevin Sawicki 5770366c00 Just use first argv value 2014-11-13 17:31:06 -08:00
Kevin Sawicki f2581e8d96 Add missing -- prefix 2014-11-13 17:31:06 -08:00
Kevin Sawicki d7d678c082 Parse squirrel event from process.argv 2014-11-13 17:31:06 -08:00
Kevin Sawicki 44181457c5 Add/remove shorcuts on install/uninstall 2014-11-13 17:31:06 -08:00
Kevin Sawicki f9b27aecf5 Pop instead of reversing 2014-11-13 17:31:06 -08:00
Kevin Sawicki ddbb0ae1db Log when updated 2014-11-13 17:31:05 -08:00
Kevin Sawicki fec2567283 📝 release -> releases 2014-11-13 17:31:05 -08:00
Kevin Sawicki ad8a020c29 Trim output 2014-11-13 17:31:05 -08:00
Kevin Sawicki 06c04779bf Delete installer dir during build 2014-11-13 17:31:05 -08:00
Kevin Sawicki 1a047a8e14 Use skinny arrow 2014-11-13 17:31:05 -08:00
Kevin Sawicki 0cf8666286 Expect JSON from --download output 2014-11-13 17:31:05 -08:00
Kevin Sawicki 7c02b7e431 Remove chocolatey logging message 2014-11-13 17:31:05 -08:00
Kevin Sawicki 6c55cff603 Use default auto updater when no update.exe 2014-11-13 17:31:05 -08:00
Kevin Sawicki c64895a621 Check for updates when feed URL is set 2014-11-13 17:31:05 -08:00
Kevin Sawicki 9dc3f2c909 Add missing @ before emit calls 2014-11-13 17:31:05 -08:00
Kevin Sawicki 1dc2ee743e Handle command line squirrel events 2014-11-13 17:31:05 -08:00
Kevin Sawicki 1f7967d17f Export instance of AutoUpdater 2014-11-13 17:31:05 -08:00
Kevin Sawicki 916729fbd5 Match param and ivar names 2014-11-13 17:31:04 -08:00
Kevin Sawicki 1922536927 💄 2014-11-13 17:31:04 -08:00
Kevin Sawicki de89f90700 update-downloaded expects multiple arguments, not an object 2014-11-13 17:31:04 -08:00
Kevin Sawicki 09f1dff502 Make releaseDate a Date 2014-11-13 17:31:04 -08:00
Kevin Sawicki 9a0414da6f Invoke quitAndInstall from quiteAndUpdate callback 2014-11-13 17:31:04 -08:00
Kevin Sawicki 119fc7f4f2 DRY up Update.exe path computing 2014-11-13 17:31:04 -08:00
Kevin Sawicki 481e0b8b6c Use execFile from child_process
This will make it easier to extract to Atom Shell since BufferedProcess
is internal to Atom.
2014-11-13 17:31:04 -08:00
Kevin Sawicki 1b69f2db46 💄 2014-11-13 17:31:04 -08:00
Kevin Sawicki 1b877c76b9 path.dirName -> path.dirname 2014-11-13 17:31:04 -08:00
Daniel Hengeveld 1fa791fc7a Fix relative import for auto-updater 2014-11-13 17:31:04 -08:00
Paul Betts e8a4867ff7 Come Correct with requires 2014-11-13 17:31:04 -08:00
Paul Betts 629717caea Add updates to menu 2014-11-13 17:31:03 -08:00
Paul Betts 0d6253555b copy pasta mistake 2014-11-13 17:31:03 -08:00
Paul Betts 63d9edcc40 First hack at a Win32 auto-updater 2014-11-13 17:31:03 -08:00
Paul Betts bc2f217e7c Handle progress output (by ignoring it) 2014-11-13 17:31:03 -08:00
Paul Betts 7381bd09b1 Save point before Boss Fight 2014-11-13 17:31:03 -08:00
Paul Betts 379bd852d2 Disable the updates shim on Win32, include our own JS version 2014-11-13 17:31:03 -08:00
Max Brunsfeld a9ee6e5d43 ⬆️ deprecation-cop
for new deprecated selectors list
2014-11-13 16:47:05 -08:00
Max Brunsfeld 2bef377e99 ⬆️ text-buffer to throw exceptions for invalid tx operations 2014-11-13 16:30:45 -08:00
Nathan Sobo 7f326421d7 Upgrade existing selectors after attaching atom-styles element
Style elements don’t have a .sheet property until they are actually
attached to the DOM.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-13 16:04:57 -08:00
Nathan Sobo 3546f21af7 Spy on console.warn to prevent spamming in the specs 2014-11-13 16:04:57 -08:00
Nathan Sobo 441dcfb56a Add specs for atom-text-editor shadow DOM selector upgrades
And cover one more case with `.editor` plus pseudo-classes

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-13 16:04:57 -08:00
Nathan Sobo 42d9ef397d Automatically upgrade syntax themes for shadow DOM compatibility
If a given selector in a stylesheet targeting the atom-text-editor
context references `.editor` or `.editor-colors`, we automatically
replace these with the appropriate `:host` pseudo-class expressions.
If the selector already contains the :host pseudo-class, we perform no
upgrade.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-13 16:04:57 -08:00
Nathan Sobo 10eb89f078 ⬆️ less-cache to fix import detection bug 2014-11-13 16:04:57 -08:00
Nathan Sobo 8b2482af22 ⬆️ atom-dark-ui for scrollbar styling across shadow boundaries 2014-11-13 16:04:57 -08:00
Nathan Sobo a2ca59bf05 ⬆️ less-cache for /deep/ combinator support 2014-11-13 16:04:57 -08:00
Nathan Sobo 91f11868ea ⬆️ Bundled UI themes to support editor shadow DOM 2014-11-13 16:04:57 -08:00
Nathan Sobo 2c19e6a6a4 ⬆️ settings-view to support shadow DOM in mini editors 2014-11-13 16:04:57 -08:00
Nathan Sobo e7ebe0a5c4 Upgrade bundled themes to support the shadow DOM 2014-11-13 16:04:57 -08:00
Nathan Sobo 95ec0d8162 Replaces usages of .mini selector with [mini] 2014-11-13 16:04:57 -08:00
Nathan Sobo 0a4f5a365a Add missing less imports to pass lesslint 2014-11-13 16:04:57 -08:00
Nathan Sobo b6b6b6d12b Add ‘mini’ attribute to TextEditorElement if .isMini() is true on model 2014-11-13 16:04:57 -08:00
Nathan Sobo 9f194ff4df Create an empty TextBuffer if needed in TextEditor constructor 2014-11-13 16:04:57 -08:00
Nathan Sobo ed6ca9cd06 Remove .editor class to force themes to style background via :host
The goal is to allow the editor’s styling to be overridden as follows:

atom-text-editor {
  background: black;
  color: white;
}

If we retain these classes, themes will continue to style the root
element of the editor and destroy the ability to style the editor in
this way. You would instead have to do the following:

atom-text-editor::shadow .editor {
  background: black;
  color: white;
}

This is way less intuitive and confusing for people.
2014-11-13 16:04:57 -08:00
Nathan Sobo 08971562cd Store useShadowDOM setting when TextEditorElement is created
Rather than reading it repeatedly, since the value could potentially
change over time.
2014-11-13 16:04:56 -08:00
Nathan Sobo 263ff21cc1 Clean up shadow-DOM-specific text editor style sheet 2014-11-13 16:04:24 -08:00
Nathan Sobo 99b08826dd Style non-shadow DOM editor with it’s own style sheet
Trying to style both modes of the text editor with the same style sheet
is proving to be more trouble than it’s worth. This prepares the shadow
DOM style sheet to diverge more radically to enable the background color
to be overridden from the outside more easily.
2014-11-13 16:04:24 -08:00
Ben Ogle 417e00b938 Upgrade find and replace to 0.147.0 2014-11-13 16:00:32 -08:00
Kevin Sawicki f8bb40c48f Merge pull request #4170 from atom/ks-use-grunt-installer-plugin
Use Grunt plugin to build Windows installer
2014-11-13 09:07:06 -08:00
Kevin Sawicki 01b75c4393 Use buildDir to build setup exe path 2014-11-13 08:46:25 -08:00
Kevin Sawicki 9f1ffeee25 Sign AtomSetup.exe 2014-11-13 08:46:25 -08:00
Kevin Sawicki c55faac0a9 ⬆️ grunt-atom-shell-installer@0.6 2014-11-13 08:46:25 -08:00
Kevin Sawicki aaa50bae90 ⬆️ grunt-atom-shell-installer@0.5 2014-11-13 08:46:25 -08:00
Kevin Sawicki b0c4910815 Add community 2014-11-13 08:46:25 -08:00
Kevin Sawicki 654f84a26c Add authors 2014-11-13 08:46:25 -08:00
Kevin Sawicki ff10ea601c Use root app dir 2014-11-13 08:46:24 -08:00
Kevin Sawicki 88bfba9fb2 ⬆️ grunt-atom-shell-installer@0.4 2014-11-13 08:46:24 -08:00
Kevin Sawicki f11168df8e Load installer task 2014-11-13 08:46:24 -08:00
Kevin Sawicki 4ce056180c Remove installer code now handled by grunt plugin 2014-11-13 08:46:24 -08:00
Kevin Sawicki 8718828869 Add initial Windows installer task 2014-11-13 08:46:23 -08:00
Kevin Sawicki edfcc134ec Add missing close import 2014-11-13 08:42:10 -08:00
Ben Ogle 6a34b88f79 Update wrap-guide to update when font-size is changed 2014-11-12 15:40:50 -08:00
Ben Ogle e596bf6ef9 Merge pull request #4144 from atom/bo-overlay-decoration
Overlay decorations
2014-11-12 15:02:40 -08:00
Ben Ogle b369a1085c Use headPixelPosition in overlay decoration rendering 2014-11-12 14:43:52 -08:00
Ben Ogle 2e7e90a8aa Update spec names 2014-11-12 14:43:26 -08:00
Ben Ogle eae80ca46d Add a check for negative bounds when translating the overlay 2014-11-12 11:50:22 -08:00
Kevin Sawicki fe7505745d Prepare 0.147 2014-11-12 10:55:14 -08:00
Max Brunsfeld 2ee3ab8577 Merge pull request #4162 from atom/mb-fix-copy-without-selection
Don't select the copied line when copying with no selection
2014-11-12 10:25:38 -08:00
Max Brunsfeld 3521b96611 Don't select the copied line when copying with no selection 2014-11-12 10:12:26 -08:00
Kevin Sawicki 7abfd45baf Default to using hard tabs in Makefile files
This is a temporary solution until scoped settings supports this
type of restriction.

Closes atom/language-make#3
2014-11-12 09:31:12 -08:00
Ben Ogle 4141b456db Merge pull request #4157 from AgentAntelope/master
Make cmd-delete delete to end of line.
2014-11-12 09:14:50 -08:00
Agent Antelope f86dc6b0a6 Revert change to cmd-shift-backspace 2014-11-12 17:09:42 +00:00
Agent Antelope 87be5af1ec Make cmd-delete delete to end of line.
This also affects cmd-shift-backspace.

The expected behaviour of cmd-delete is that it deletes to end of line,
with cmd acting as a modifier to delete/shift-backspace.
2014-11-12 13:41:32 +00:00
Ben Ogle 12b9f232c2 💄 2014-11-11 16:39:30 -08:00
Kevin Sawicki 19995df367 💄 Use two space indent 2014-11-11 16:39:24 -08:00
Ben Ogle 97a671cb49 Works with the shadow DOM disabled. 2014-11-11 16:30:22 -08:00
Ben Ogle 9acea88101 Change verbiage in spec names 2014-11-11 15:52:44 -08:00
Ben Ogle b29c0ca2f7 nof 2014-11-11 15:52:21 -08:00
Ben Ogle a4a3577163 💄 2014-11-11 15:50:34 -08:00
Ben Ogle 9dfaa8a4e5 Add bounds checking for overlay decorations 2014-11-11 15:46:27 -08:00
Ben Ogle 661b09ab1c Don’t need this 2014-11-11 15:45:57 -08:00
Nathan Sobo e238292075 Remove WorkspaceElement::handleWindowFocus
We were getting stack traces in specs when the window got focused caused
by this subscription never getting disposed. We investigated, and can’t
find a case where removing this causes any issues.

Tested:
* Loading/reloading empty window
* Loading/reloading window with pane splits
* Opening/closing dev tools
* Switching focus between atom windows
* Switching focus between applications

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-11 16:24:02 -07:00
Nathan Sobo 9fd52f600e Dispose of WorkspaceElement subscriptions when detached
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-11 16:24:02 -07:00
Nathan Sobo c75e692269 Don’t add undefined context menus when activating package resources
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-11 16:24:02 -07:00
Nathan Sobo 6770570f13 Don't call Grim.deprecate for undefined context menus
This preserves the original behavior, in which passing undefined to
atom.contextMenu.add was a no-op that returned a no-op disposable.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-11 16:24:02 -07:00
Nathan Sobo 9875b069bc Merge pull request #4152 from atom/ns-highlight-region-classes
Add private API for adding classes to highlight regions for backward compatibility
2014-11-11 15:20:47 -07:00
Ben Ogle 9399e00033 Properly display when a marker is reversed 2014-11-11 13:32:13 -08:00
Ben Ogle 67d5d997c9 💄 in 📝 2014-11-11 13:08:27 -08:00
Ben Ogle 40c11410f0 Add Cursor::getMarker() method 2014-11-11 13:08:19 -08:00
Ben Ogle 307108ec6c Specs for positioning the overlay decorations 2014-11-11 13:08:05 -08:00
Ben Ogle 0bb173b646 Add spec for creation and removal of overlay 2014-11-11 11:25:36 -08:00
Ben Ogle 6538da22a6 Fix linter error 2014-11-11 11:25:36 -08:00
Ben Ogle c79db992d9 Overlay decorations render 2014-11-11 11:25:36 -08:00
Ben Ogle 89ab0becc2 💄 2014-11-11 11:25:36 -08:00
Ben Ogle 58892be6f7 Use proper verbiage for the docs 2014-11-11 11:24:46 -08:00
Ben Ogle 2aaa025d72 Add deprecated getMoveNextWordBoundaryBufferPosition
Closes #4151
2014-11-11 11:24:10 -08:00
Max Brunsfeld 1474aa2116 Merge pull request #4148 from atom/mb-cut-line
Cut whole lines when no text is selected
2014-11-11 11:13:51 -08:00
Nathan Sobo 2de8046f99 Add deprecatedRegionClass option to highlight decorations
This adds a class to each of the contained regions so we can make
existing bundled packages backward-compatible with themes.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-11 12:11:26 -07:00
Nathan Sobo a58af721f1 Assign highlight decoration React keys based on decoration id instead of class
@benogle: I think this should be fine now that we assign id’s, right?

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-11 12:11:26 -07:00
Kevin Sawicki 3a0bce0618 ⬆️ settings-view@0.159 2014-11-11 10:57:54 -08:00
Kevin Sawicki 658dc8e9c3 Merge pull request #4141 from atom/ks-file-encoding-config
Default buffer encoding to core.fileEncoding config
2014-11-11 10:07:53 -08:00
Max Brunsfeld 7a87c22c7d Cut/copy whole lines when no text is selected
Closes #3643
2014-11-11 10:02:17 -08:00
Kevin Sawicki e36eaa56cb Add windows1252 2014-11-11 09:47:34 -08:00
Kevin Sawicki 84a74d68cf Remove windows1250 duplicate 2014-11-11 09:47:34 -08:00
Kevin Sawicki 5946590a66 Add spec for default file encoding 2014-11-11 09:47:34 -08:00
Kevin Sawicki 268a3649b6 Use core.fileEncoding as default buffer encoding 2014-11-11 09:47:34 -08:00
Kevin Sawicki 3e67766d1a Add core.fileEncoding config schema 2014-11-11 09:47:34 -08:00
Kevin Sawicki 1038684014 Prepare 0.146 2014-11-11 09:47:07 -08:00
Kevin Sawicki 43acb99f86 ⬆️ encoding-selector@0.7 2014-11-11 09:02:19 -08:00
Nathan Sobo 8dccc8e07c Merge pull request #4143 from atom/ns-fix-scrollbar-regression
Always re-render scrollbars after themes load/reload
2014-11-10 19:50:13 -07:00
Max Brunsfeld 3c800b00f5 Always re-render scrollbars after themes load/reload
Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-10 17:59:41 -08:00
Kevin Sawicki cb0f531b9a ⬆️ find-and-replace@0.146 2014-11-10 16:55:50 -08:00
Kevin Sawicki 5e61c7b38a ⬆️ symbols-view@0.68 2014-11-10 15:53:19 -08:00
Nathan Sobo 57f85e1720 Add regression coverage for “hidden pane item after dragging” bug #4112
Refs bad0504e1d
2014-11-10 15:55:21 -07:00
Kevin Sawicki f4ced3b078 Autoscroll when selecting the entire line
Closes #4032
2014-11-10 14:51:03 -08:00
Ben Ogle 9553c46030 Override the default styling of .highlight in the editor.
Closes #4136
2014-11-10 14:34:50 -08:00
Kevin Sawicki 14e73e0c63 pane -> Pane 2014-11-10 14:31:21 -08:00
Ben Ogle 5c5c6e77fd Move method to be with similar methods in the docs. 2014-11-10 14:18:35 -08:00
Ben Ogle e9678a15f1 Add more docs for getPrev/NextWordBoundary methods 2014-11-10 14:18:15 -08:00
Ben Ogle f0135adb62 Fix method name 2014-11-10 14:17:48 -08:00
Ben Ogle 58fe92a41b Merge pull request #4135 from atom/bo-tab-reorder
Tab reorder
2014-11-10 14:00:45 -08:00
Kevin Sawicki 5689fbf7cc Suggest keyring dependencies
apm now gracefully fails without them being installed and they
are only used for publishing and starring packages.
2014-11-10 13:35:48 -08:00
Ben Ogle af052c79a7 nof 2014-11-10 13:32:58 -08:00
Kevin Sawicki f431bb6396 Add more complete list of Debian dependencies
This list was taken from the webupd8 .deb file

Closes #4114
2014-11-10 13:32:20 -08:00
Ben Ogle e21cc17a7b Add tab-moving key bindings for windows 2014-11-10 13:31:18 -08:00
Ben Ogle 1247e40e88 Add tab-moving key bindings for mac 2014-11-10 13:31:12 -08:00
Ben Ogle 6159209d49 moveItemTo* -> moveItem* 2014-11-10 13:28:15 -08:00
Kevin Sawicki d8263a1fcd ⬆️ apm@0.111 2014-11-10 13:21:23 -08:00
Ardeshir Javaherchi 5e3b88f42d Add another test for moveItemToLeft 2014-11-10 11:25:17 -08:00
Ardeshir Javaherchi a0e4d8b582 Add test for reordering tabs in linux 2014-11-10 11:25:17 -08:00
Ardeshir Javaherchi ff80545285 🐧 Add keymap implementation to reorder tabs in linux 2014-11-10 11:25:16 -08:00
Ben Ogle 3462d99675 Upgrade atom-dark-syntax 2014-11-10 11:16:34 -08:00
Kevin Sawicki 11ec0c579d ⬆️ language-css@0.23 2014-11-10 11:04:11 -08:00
Kevin Sawicki 0de9f54e3c ⬆️ apm@0.110 2014-11-10 11:04:11 -08:00
Ben Ogle 75e499004d Merge pull request #4119 from je-allard/master
🐛 load the bootstrap style for thumbnails
2014-11-10 10:34:38 -08:00
Nathan Sobo 11a817c442 :arrow_up settings-view to revert previous change 2014-11-10 11:16:29 -07:00
Nathan Sobo 8db843a57c ⬆️ settings-view to fix styling 2014-11-10 11:07:11 -07:00
Nathan Sobo 08dd51a12f Merge pull request #4121 from atom/mb-inline-commands-in-palette
Include inline commands in the command palette
2014-11-10 10:25:36 -07:00
Nathan Sobo 3f869ec191 Merge pull request #4105 from atom/ld-doc-update
Remove obsolete jQuery reference in documentation
2014-11-10 10:18:42 -07:00
Nathan Sobo 0fba8ba402 Subscribe to ‘window:open-path’ as a command 2014-11-10 10:10:53 -07:00
Nathan Sobo 7756f4b945 Don’t run ‘beforeunload’ listeners through atom.commands 2014-11-10 10:10:53 -07:00
Nathan Sobo 832e7113f7 Include all inline commands on the bubble path in ::findCommands 2014-11-10 10:10:52 -07:00
Nathan Sobo aa46e3d26f Add atom-pane commands via atom.commands again 2014-11-10 10:10:52 -07:00
Nathan Sobo d48719ab1c Ignore jQuery and duplicates in CommandRegistry::findCommands
Now that jQuery has been patched to add inline listeners and inline
listeners are reported from findCommands, there’s no reason to include
commands based on $.fn.events. Also, we need to ensure the same command
doesn’t get added to the list twice since it could get added by both
inline and selector-based listeners.
2014-11-10 10:09:24 -07:00
Max Brunsfeld 0c40a1ef92 Include inline commands in command palette 2014-11-10 10:09:24 -07:00
Nathan Sobo bad0504e1d Attach active pane item view before showing/hiding
Fixes #4112
2014-11-10 10:06:12 -07:00
Nathan Sobo 01fdd83c6c ⬆️ markdown-preview to fix exception when modifying w/ splits 2014-11-10 08:22:13 -07:00
Nathan Sobo 0a92b6b681 Add Workspace::paneForItem 2014-11-10 08:20:59 -07:00
Nathan Sobo 167467339a Merge pull request #4129 from atom/ns-fix-pane-close
Prompt to save modified items when closing a pane via pane:close
2014-11-10 08:17:56 -07:00
Nathan Sobo efd3329c50 Prompt to save modified items when closing a pane via pane:close
Fixes #4094
2014-11-10 07:55:37 -07:00
Jeremy Allard a140787252 🐛 load the bootstrap style for thumbnails 2014-11-09 01:40:49 -05:00
Lee Dohm d09c4010f6 Remove obsolete jQuery reference
Noticed that "soon" is now
2014-11-07 22:23:12 -08:00
Kevin Sawicki e2f1a245b0 💄 2014-11-07 20:54:03 -08:00
Kevin Sawicki 682045ef16 Prepare 0.145 2014-11-07 20:26:29 -08:00
Kevin Sawicki dc6e825edd ⬆️ encoding-selector@0.6 2014-11-07 19:57:23 -08:00
Nathan Sobo 481e444ffe Reassign context to undefined because CoffeeScript needs a var keyword
Fixes #4100
2014-11-07 18:00:38 -07:00
Nathan Sobo 5193fa698f Merge pull request #4103 from atom/ns-fix-active-pane-deserialization
Make deserialization of the active pane more tolerant and add assertions to catch invalid states
2014-11-07 16:00:40 -07:00
Nathan Sobo b8d2bd6c30 Disallow activation of panes that aren't in the PaneContainer
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-07 15:46:47 -07:00
Nathan Sobo 33fde29acb Disallow activation of destroyed panes
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-07 15:45:21 -07:00
Nathan Sobo 6934b83acc Fall back to first pane if activePaneId is invalid
When deserializing PaneContainer.

Fixes #4069

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-07 15:44:59 -07:00
Nathan Sobo 330988ad16 Merge pull request #4101 from atom/mb-fix-styles
Fix user stylesheet regression due to shadow DOM PR
2014-11-07 14:56:26 -07:00
Nathan Sobo 058ef0a5a8 Fix autocomplete specs 2014-11-07 14:43:02 -07:00
Max Brunsfeld 003c101f14 W/o shadow-dom, don't add global atom-styles element for text editor
Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-07 13:05:46 -08:00
Max Brunsfeld 98d602628a Render all stylesheets in atom-styles elements without contexts
Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-07 12:56:32 -08:00
Kevin Sawicki 46efc52a22 ⬆️ language-shellscript@0.10 2014-11-07 12:42:13 -08:00
Kevin Sawicki f78891b600 Fetch draft assets from assets URL
This will include assets in a bad state that should still be deleted
and aren't returned from the main release URL.
2014-11-07 12:07:16 -08:00
Kevin Sawicki 05e3bbde45 ⬆️ settings-view@0.156 2014-11-07 11:54:58 -08:00
Ben Ogle 4dc4a022ab Upgrade find-and-replace to use atom-text-editor 2014-11-07 11:09:03 -08:00
Ben Ogle 226ae374c1 Upgrade bookmarks to work with shadow dom 2014-11-07 11:06:03 -08:00
Kevin Sawicki fbfe1c7224 Fully fetch draft release
Assets in a bad state aren't returned from the releases listing
endpoint.
2014-11-07 10:58:53 -08:00
Kevin Sawicki 53f8ae3055 ⬆️ language-sass@0.25 2014-11-07 10:48:24 -08:00
Ben Ogle 1634b3acfc Upgrade git-diff to use atom-text-editor 2014-11-07 10:46:15 -08:00
Kevin Sawicki 3067323564 ⬆️ language-css@0.22 2014-11-07 10:41:36 -08:00
Kevin Sawicki c410b79af0 ⬆️ language-python@0.23 2014-11-07 10:34:45 -08:00
Ben Ogle f09fc23fdc Merge branch 'master' of github.com:atom/atom 2014-11-07 10:16:16 -08:00
Kevin Sawicki a9262b18c2 Prepare 0.144 2014-11-07 10:14:27 -08:00
Ben Ogle ef129f9491 Add more relevant (but contrived) example in init.coffee.
Closes #4089
2014-11-07 10:02:07 -08:00
Ben Ogle b4d38d14e3 Add padding to panel headings 2014-11-07 09:44:32 -08:00
Ben Ogle 97a21d7bbf Merge pull request #4087 from philipgiuliani/patch-1
📝 Update .workspace class with custom element
2014-11-07 09:34:32 -08:00
Nathan Sobo ab395952a9 Dispose of ::scopedConfigSubscriptions when Editor is destroyed 2014-11-07 10:13:38 -07:00
Nathan Sobo 6e55c80d3c Dispose of ::scopedConfigSubscriptions when DisplayBuffer is destroyed 2014-11-07 10:09:55 -07:00
Philip Giuliani f1079056cf Update .workspace class with custom element
Because of the update with the custom elements, i noticed that `.workspace` hasn't been updated in the `keymap.cson`, but `.editor` has (to `atom-text-editor`).
2014-11-07 09:43:46 +01:00
Ben Ogle b29a61ec87 Update deprecation warning test 2014-11-06 15:19:49 -08:00
Max Brunsfeld 4894849adc ⬆️ atom-keymap for multi-modifier keystroke fix
Signed-off-by: Nathan Sobo <nathan@github.com>
2014-11-06 15:01:34 -08:00
Ben Ogle cf78b01d45 Upgrade find-and-replace to use new APIs 2014-11-06 14:49:13 -08:00
Ben Ogle 1ed927f213 Remove getPath() deprecation in project::scan 2014-11-06 14:49:13 -08:00
Nathan Sobo b978b4f8c7 ⬆️ space-pen for interoperable $.fn.view method
Previously, the SpacePen view was associated with its elements
via $.fn.data, but this only works across a single instance
of jQuery. Now we store a ::spacePenView property as an expando
property directly on elements.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-06 15:28:49 -07:00
Nathan Sobo baea6fcb49 Don’t assume SpacePen views implement ::unsubscribe
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-06 15:28:20 -07:00
Nathan Sobo 7e06e10fcf Don’t require a specific jQuery instance for jasmine jQuery matchers
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-06 15:27:45 -07:00
Nathan Sobo 0bcfa591f6 Always throw exceptions when translating rows on destroyed DisplayBuffer
Previously we only threw exceptions on non-release builds, but we
haven’t seen bundled packages cause issues in a while. Time to see what
third party packages cause problems.

Refs #3192
2014-11-06 12:56:01 -07:00
Ben Ogle f2532b1a35 Upgrade metrics to reduce the noise a bit 2014-11-06 11:46:12 -08:00
Nathan Sobo e0f8d6f365 Fix disappearing editor when folding all
Also: simplify the editor stylesheet a bit. Still some more to do but
fixing this issue is more important.
2014-11-06 12:36:14 -07:00
Ben Ogle 50c705fea4 Remove unnecessary code
cc @nathansobo as you meant to remove this originally
2014-11-06 10:16:11 -08:00
Max Brunsfeld 8bfea240ea Merge pull request #4071 from atom/mb-editor-grouped-undo
Add grouped undo for all text editor commands
2014-11-06 10:13:04 -08:00
Max Brunsfeld 4099828525 ⬆️ text-buffer@3.6.0 2014-11-06 09:55:31 -08:00
Max Brunsfeld 26983adbdf Reduce ambiguity in config description 2014-11-06 09:42:20 -08:00
Kevin Sawicki ede703453a ⬆️ settings-view@0.155 2014-11-06 09:38:36 -08:00
Max Brunsfeld d97c81bf6a Make undo grouping interval configurable 2014-11-06 09:25:10 -08:00
Kevin Sawicki bd76242851 Prepare 0.143 2014-11-06 09:03:35 -08:00
Max Brunsfeld d85c07e7e2 Don't wrap undo/redo calls in transactions 2014-11-05 16:59:06 -08:00
Max Brunsfeld 4077e791c9 Update signature of calls to TextBuffer::transact 2014-11-05 15:58:13 -08:00
Max Brunsfeld e7eef89fa5 Remove TextEditor::withGroupingInterval
Just use ::transact
2014-11-05 15:58:13 -08:00
Max Brunsfeld 5437236304 Use undo grouping in editor command listeners 2014-11-05 15:58:13 -08:00
Max Brunsfeld b7aa421e4e Add TextEditor::withGroupingInterval
This method temporarily instructs the editor to apply undo grouping with
a given interval. This way, undo grouping can be made optional without
adding optional arguments to every buffer manipulation method.
2014-11-05 15:58:12 -08:00
Ben Ogle 9458db0c1f Fix issue removing panels 2014-11-05 15:37:47 -08:00
Ben Ogle 80c15513bb Fix typos 2014-11-05 15:36:39 -08:00
Ben Ogle 951289f67f Upgrade metrics for cohorts, commands, and exceptions 2014-11-05 15:05:31 -08:00
Kevin Sawicki 1e7ba12e60 ⬆️ markdown-preview@0.109 2014-11-05 14:44:22 -08:00
Kevin Sawicki 9a423359c4 ⬆️ markdown-preview@0.108 2014-11-05 14:40:50 -08:00
Kevin Sawicki bb56c6badc ⬆️ language-python@0.22 2014-11-05 12:49:21 -08:00
Nathan Sobo ae461b21a4 ⬆️ find-and-replace for shadow DOM support
@benogle heads-up. Not sure if you didn’t want to update this yet but
I’m assuming it’s fine.
2014-11-05 11:26:56 -07:00
Nathan Sobo 670b44f250 Only set both height and width of editor when shadow DOM is used
These work inside a shadow root, but break the flexbox behavior when
the shadow DOM is disabled.
2014-11-05 11:21:29 -07:00
Kevin Sawicki d330a8fac5 Merge pull request #4006 from atom/atom-shell-v0.19.0
Upgrade to atom-shell@0.19.0
2014-11-05 09:45:31 -08:00
Kevin Sawicki 8bd2650d01 Merge pull request #4064 from atom/pass-path-env
Pass $PATH by command line
2014-11-05 09:40:04 -08:00
Ben Ogle 560d9387dc Upgrade text-buffer to remove deprecations 2014-11-05 09:23:44 -08:00
Nathan Sobo 39cc463e24 Add .editor and .editor-colors classes regardless of shadow DOM setting 2014-11-05 09:57:13 -07:00
Nathan Sobo 2c83c3fe17 Merge pull request #3943 from atom/ns-text-editor-shadow-dom
Render text editor contents inside shadow DOM
2014-11-05 09:42:07 -07:00
Nathan Sobo 07505ea82a Support any instance of jQuery in view registry logic 2014-11-05 09:33:31 -07:00
Nathan Sobo 47d3b3edf3 Add jQueryTrigger: true to command detail in $.fn.trigger patch
Attention: @benogle
References: atom/metrics#32
2014-11-05 09:28:35 -07:00
Ben Ogle 3d394e854e Add 'application:open-dev' binding for windows. 2014-11-05 08:19:24 -08:00
Ben Ogle a37b8ff632 Merge pull request #4068 from jpelgrom/master
Keyboard shortcut to open folder on Windows
2014-11-05 08:18:00 -08:00
jpelgrom f8a05dd8e0 Keyboard shortcut to open folder on Windows
Based on Linux behaviour
2014-11-05 16:05:55 +01:00
Cheng Zhao 6a58f6054a Pass $PATH by command line 2014-11-05 12:11:42 +08:00
Ben Ogle ddd4a9a968 Merge pull request #4063 from atom/bo-unify-panel-styling
Unify panel styling
2014-11-04 17:12:49 -08:00
Ben Ogle 743c50014f Do not import overlay 2014-11-04 16:59:02 -08:00
Ben Ogle af761fb004 All panel styling into panels.less 2014-11-04 15:39:25 -08:00
Nathan Sobo badf1725fa Handle focus on hidden input when shadow DOM is disabled
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:29 -07:00
Nathan Sobo 2b2149bca1 Add config schema for editor.useShadowDOM
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:28 -07:00
Nathan Sobo e1d6d55311 Enable editor.useShadowDOM in all specs 2014-11-04 16:37:28 -07:00
Nathan Sobo 670a710753 Test editor focus/blur handling with shadow DOM enabled/disabled
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:28 -07:00
Nathan Sobo dd1e5338c6 Focus the root TextEditorElement in spec instead of component node
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:28 -07:00
Nathan Sobo 100af7d27d Fix corner cases related to lifecycle state of EditorComponent on events
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:28 -07:00
Nathan Sobo 9b70cf2044 Make blur event on text editor element work with shadow DOM disabled
When the shadow DOM is enabled, this happens organically because the
focus is abstracted across the shadow boundary. Without that abstraction
boundary, we need to pretend that a blur of the hidden input is actually
a blur of the entire editor.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:28 -07:00
Nathan Sobo 7fe9c14772 💄 2014-11-04 16:37:28 -07:00
Nathan Sobo 9690e44ffe Correctly handle focus when shadow DOM is disabled
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:27 -07:00
Nathan Sobo 0e57ede712 Only create a shadow root if editor.useShadowDOM config setting is true
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:27 -07:00
Nathan Sobo dd7335c30b Simplify focus/blur handling
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2014-11-04 16:37:27 -07:00
Ben Ogle 4537e9bd1a Fix specs 2014-11-04 16:37:27 -07:00
Nathan Sobo 0488fc21da ⬆️ autocomplete for shadow DOM fix with auto-selecting 1 option 2014-11-04 16:37:27 -07:00
Nathan Sobo 160bb29034 Null-guard component in blur handler 2014-11-04 16:37:27 -07:00
Nathan Sobo 497b4a4e24 Toggle quotes back 2014-11-04 16:37:27 -07:00
Nathan Sobo dd4e7d6921 Wait for promise resolution on all calls to activatePackage
This avoids a race condition where stylesheets would be added after all
packages were deactivated and leak into the next spec.
2014-11-04 16:37:26 -07:00
Nathan Sobo d060ecdc24 Assign package stylesheet context based on double-extension in file name
If stylesheet files are named with 2 extensions, the first extension is
used as the context argument when the package’s stylesheets are loaded.
This allows people to target the text editor by naming their stylesheet
`index.atom-text-editor.less`.
2014-11-04 16:37:26 -07:00
Nathan Sobo 84d1101903 Upgrade package-generator to fix specs with shadow DOM 2014-11-04 16:37:26 -07:00
Nathan Sobo 6f3c53a17a Only cancel focus events if the editor is or contains the related target 2014-11-04 16:37:26 -07:00
Nathan Sobo dd17e8f018 Replace focusout event handlers on hiddenInput shim with blur handlers
The focusout event doesn’t seem to work for elements in the shadow DOM.
Other people seem to share this experience:

https://code.google.com/p/chromium/issues/detail?id=378163#c7
2014-11-04 16:37:26 -07:00
Nathan Sobo cf3f1aa2eb Don’t handle text editor focus when it already has focus 2014-11-04 16:37:26 -07:00
Nathan Sobo adaf1829da Determine focus using document.activeElement instead of component state 2014-11-04 16:37:26 -07:00
Nathan Sobo 7863db480e Override jQuery.contains instead of jQuery.fn.position
Turns out the problems with position inside the shadow DOM are due to
the fact that elements in the light DOM don’t claim to contain elements
from a shadow DOM, causing jQuery.fn.offset to bail out early and
misreport positions inside the editor.
2014-11-04 16:37:26 -07:00
Nathan Sobo 5cc243ec11 Inject both underlayer and overlayer via shadow DOM insertion points 2014-11-04 16:37:25 -07:00
Nathan Sobo 2e46cf9b8d Refefine $.fn.position in terms of offsetTop/Left to work w/ shadow DOM
The default implementation of position seems to barf when things are in
the shadow DOM. This seems to be a suitable replacement that doesn’t.
2014-11-04 16:37:25 -07:00
Nathan Sobo 5e8655fa60 Don’t use :focus selector to store previously focused element 2014-11-04 16:37:25 -07:00
Nathan Sobo c64a4b7ca9 Fallback to light DOM in TextEditorView::find if nothing found in shadow 2014-11-04 16:37:25 -07:00
Nathan Sobo bda1429293 Trigger ‘blur’ on select list editor instead of ‘focusut’ on its input 2014-11-04 16:37:25 -07:00
Nathan Sobo eb19989ecd Handle focus at the host element level
Detecting focus and blur at the level of the input is creating problems
when we blur and then immediately refocus. This is simpler.
2014-11-04 16:37:25 -07:00
Nathan Sobo 62c0db11ee Define enter as ‘core:confirm’ in select-list mini editors
We were leaving this to packages to define, and they were getting it
wrong by selecting into the ‘input’ which is now in shadow.
2014-11-04 16:37:25 -07:00
Nathan Sobo 8aeabe5fe5 Listen for ‘blur’ on mini editor of select list rather than ‘focusout’
The focusout handler on the mini editor’s hidden input wasn’t being
triggered, but we can listen for blur directly on the editor now that
the shadow DOM abstracts the focus.
2014-11-04 16:37:25 -07:00
Nathan Sobo ab846a2495 Put views appended via appendToLinesView in the light DOM
This adds an insertion point to the lines div via a <content> tag,
allowing immediate children of the editor tag to be positioned relative
to the lines div but still be styled via global CSS.
2014-11-04 16:37:24 -07:00
Nathan Sobo 7202908780 Split editor stylesheet into light and shadow DOM versions
This prevents the need for a :host pseudo-class in the editor CSS which
breaks linting. It also fits selectors targeting the host element in a
more intuitive spot in the cascade.
2014-11-04 16:37:24 -07:00
Nathan Sobo c4cfac5615 Use event capture for pane focus/blur events
Focusin/focusout don’t seem to bubble properly across shadow DOM
boundaries, so capturing is a more reliable alternative.
2014-11-04 16:37:24 -07:00
Nathan Sobo 866f2d9a76 Fix appendToLinesView 2014-11-04 16:37:24 -07:00
Nathan Sobo 3b455c00d3 Proxy TextEditorView::find calls to the root inside the shadow DOM 2014-11-04 16:37:24 -07:00
Nathan Sobo 1f777addd9 Sample font styling when font config values change
We previously could do it whenever stylesheets changed, but these values
end up getting assigned to the global stylesheet for cascading reasons
and we’re only watching the local stylesheet. We poll the host elements
DOM properties, but forcing a sync poll when the config values change
makes behavior synchronous for specs and more responsive when changing
these values.
2014-11-04 16:37:24 -07:00
Nathan Sobo 58744f6b7b Account for shadow DOM when asserting on focus 2014-11-04 16:37:24 -07:00
Nathan Sobo 7badd9ba25 Don’t rely on :focus selector for toHaveFocus matcher
:focus doesn’t work properly when focus is inside the shadow DOM of
an element, but document.activeElement does.
2014-11-04 16:37:23 -07:00
Nathan Sobo e8d7058383 Go back to the plain “theme” group for theme stylesheets 2014-11-04 16:37:23 -07:00
Nathan Sobo 42fc54f716 Protect against stylesheets changing while detached 2014-11-04 16:37:23 -07:00
Nathan Sobo c11675dca1 Don’t recycle the same composite disposable for stylesheet activation 2014-11-04 16:37:23 -07:00
Nathan Sobo cdb62812d2 Don’t use syntax themes in spec because they are inserted in shadow DOM 2014-11-04 16:37:23 -07:00
Nathan Sobo 2d3d64f399 Call reloadStylesheets instead of reloadStylesheet in spec 2014-11-04 16:37:23 -07:00
Nathan Sobo 2321aa2bee Get SpacePen outlet shims from inside shadow DOM 2014-11-04 16:37:23 -07:00
Nathan Sobo fa733c85ad Fix setEditorHeightInLines shim now that we’ve dropped .react class 2014-11-04 16:37:23 -07:00
Nathan Sobo 158bbef38f Account for shadow dom when asserting active element 2014-11-04 16:37:22 -07:00
Nathan Sobo b2bc09c13d Apply stylesheets with atom-editor-context in text editor specs 2014-11-04 16:37:22 -07:00
Nathan Sobo 268fceb073 Specify border-box sizing for the cursor to fix specs 2014-11-04 16:37:22 -07:00
Nathan Sobo 5be21d6743 Avoid traversing through shadow root on mousewheel events 2014-11-04 16:37:22 -07:00
Nathan Sobo 5d3602d37b Get node once to attach event handlers 2014-11-04 16:37:22 -07:00
Nathan Sobo b86f6870c5 Use native event handlers instead of React
React event handlers don’t work because of the shadow DOM
2014-11-04 16:37:22 -07:00
Nathan Sobo 2ab5fa405c Apply mini and is-focused class to both editor host element and root
This preserves existing theming behavior
2014-11-04 16:37:22 -07:00
Nathan Sobo 5f4fb23057 Initialize atom-styles element in editor shadow dom before measuring 2014-11-04 16:37:22 -07:00
Nathan Sobo 22f6268116 Assign StylesElement::context on attachment 2014-11-04 16:37:21 -07:00
Nathan Sobo 65f40d6f7b Move font styling to host element so font preferences work 2014-11-04 16:37:21 -07:00
Nathan Sobo 596987fbce Fix sourcePath on text editor stylesheet loading 2014-11-04 16:37:21 -07:00
Nathan Sobo 2b218d2e01 Only update atom-styles children on context attribute change if attached 2014-11-04 16:37:21 -07:00
Nathan Sobo 582066915b Apply syntax theme stylesheets in text editor shadow DOM via atom.styles 2014-11-04 16:37:21 -07:00
Nathan Sobo 1a98cb7070 Use atom.styles to activate stylesheets in packages 2014-11-04 16:37:21 -07:00
Nathan Sobo c2d0b6d4f5 Load editor stylesheet in shadow root with style manager context param 2014-11-04 16:37:21 -07:00
Nathan Sobo 2affff30ff Handle events with native handlers to avoid shadow DOM issues with React 2014-11-04 16:37:21 -07:00
Nathan Sobo 3b6189e94b Create WeakMap on element creation to support ‘context’ attribute change 2014-11-04 16:37:21 -07:00
Nathan Sobo 4e8e5a84c4 Support context attribute in <atom-styles> 2014-11-04 16:37:20 -07:00
Nathan Sobo 087387e633 Style mini editor font sizes on atom-text-editor host element
…instead of via the shadow DOM. We always honor the computed font
styles of the host element.
2014-11-04 16:37:20 -07:00
Nathan Sobo 769c6c52bb Make atom-text-editor have “display: block” 2014-11-04 16:37:20 -07:00
Nathan Sobo 963c92eb4e Hack: Add editor stylesheets to atom-text-editor shadow root 2014-11-04 16:37:20 -07:00
Nathan Sobo 22212be90d Give atom-text-editor elements a shadow root
Themes aren’t applying correctly and there are issues with mini editors
but this basically works. I’m leaving the .editor node in the shadow
DOM for theme compatibility and because React still wants to render
into a wrapper element.
2014-11-04 16:37:20 -07:00
Ben Ogle 8a640b35e0 Merge pull request #4061 from atom/bo-modal-panel
Modal panel API
2014-11-04 15:34:43 -08:00
Ben Ogle df9a0dc7a3 hideAllPanelsExcept 2014-11-04 15:22:32 -08:00
Ben Ogle 5251183410 Dispose panel emitter on destroy() 2014-11-04 15:21:32 -08:00
Ben Ogle 5bd028b24e Enforce modal 2014-11-04 14:58:00 -08:00
Ben Ogle 8485831f40 Add the location attr. Need it for styling! 2014-11-04 14:22:15 -08:00
Ben Ogle da30b66ffa Fix tests 2014-11-04 14:10:58 -08:00
Ben Ogle 3da11bf478 Update styles for modal panels. 2014-11-04 14:04:15 -08:00
Ben Ogle 9b1d5e1864 Add addModalPanel to atom.workspace. 2014-11-04 13:48:48 -08:00
Ben Ogle 1f445acc12 Merge pull request #4060 from atom/bo-remove-some-bootstrap
Only load the bootstrap styles we need
2014-11-04 13:47:44 -08:00
Ben Ogle 022bc2e2a5 Only load the bootstrap styles we need! 2014-11-04 12:28:53 -08:00
Cheng Zhao da18db754f ⬆️ atom-shell@0.19.1 2014-11-04 21:02:46 +08:00
Cheng Zhao c20403d983 ⬆️ atom-shell@0.19.0 2014-11-04 21:02:46 +08:00
Ben Ogle 78dc87d4b6 Add new event method for unhandled errors. 2014-11-03 16:18:20 -08:00
Kevin Sawicki 5dd310f9ac ⬆️ language-shellscript@0.9 2014-11-03 10:42:04 -08:00
Kevin Sawicki 427a32c336 ⬆️ language-javascript@0.43 2014-10-31 16:13:34 -07:00
Kevin Sawicki f3d4a3ad45 ⬆️ language-c@0.30 2014-10-31 16:09:55 -07:00
Ben Ogle ba642682ca Merge pull request #4014 from atom/bo-undo-skip
Pass options through to TextBuffer::setTextInRange
2014-10-31 12:19:28 -07:00
Ben Ogle b1a0258ad4 Clean up spec name 2014-10-31 11:39:56 -07:00
Kevin Sawicki 44112f2ecd Merge pull request #4023 from atom/ks-map-assets-directory-to-atom-protocol
Load atom://assets/ urls from ~/.atom/assets
2014-10-31 11:39:39 -07:00
Ben Ogle 54b8aa4a02 Add spec for skip 2014-10-31 11:38:24 -07:00
Ben Ogle 5791548ac4 Upgrade to text-buffer@3.5.0 2014-10-31 11:33:03 -07:00
Kevin Sawicki 26f21abcf3 Remove ivar only used in constructor 2014-10-31 11:24:26 -07:00
Kevin Sawicki ab0f9e88a7 Add dot atom directory ivar 2014-10-31 10:56:03 -07:00
Kevin Sawicki 6d8b891b65 💄 2014-10-31 10:43:07 -07:00
Kevin Sawicki afdb96e1b1 Don't load from ~/.atom/dev when in safe mode 2014-10-31 10:42:27 -07:00
Kevin Sawicki 9c1ca86cb0 Load atom://assets/ urls from ~/.atom/assets 2014-10-31 10:35:15 -07:00
Kevin Sawicki 4e95977fbd Merge pull request #4018 from ardeshirj/mkrpm
Remove rpm package dependencies
2014-10-31 09:48:34 -07:00
Kevin Sawicki 4a8a379891 ⬆️ symbols-view@0.67 2014-10-31 09:05:32 -07:00
Ardeshir Javaherchi fb0387f43e Remove rpm package dependencies 2014-10-30 23:26:52 -07:00
Ben Ogle 5231a548e3 Pass options through to the text buffer 2014-10-30 17:49:43 -07:00
Kevin Sawicki a466d6cdaf ⬆️ tree-view@0.132 2014-10-30 17:00:36 -07:00
Kevin Sawicki 19b0f760a1 Only re-tokenize lines when tab length changes
Closes #3929
2014-10-30 16:20:05 -07:00
Kevin Sawicki 228ba5f96a ⬆️ language-php@0.18 2014-10-30 15:43:14 -07:00
Kevin Sawicki 25922872f0 Remove trailing whitespace 2014-10-30 14:00:53 -07:00
Ben Ogle 15a1982e8c Merge pull request #4012 from atom/bo-move-view-registry
Move the ViewRegistry to atom.views
2014-10-30 13:56:52 -07:00
Ben Ogle fcca61c2b2 📝 Update docs 2014-10-30 13:56:03 -07:00
Ben Ogle ee4116536d Move the ViewRegistry to atom.views 2014-10-30 13:42:27 -07:00
Kevin Sawicki c217c6544a Prepare 0.142 2014-10-30 13:35:40 -07:00
Kevin Sawicki 205095a198 ⬆️ encoding-selector@0.5 2014-10-30 11:03:35 -07:00
Kevin Sawicki 4326898d5f ⬆️ grammar-selector@0.37 2014-10-30 11:02:15 -07:00
Kevin Sawicki b8285a00b0 Require path after setting start time 2014-10-30 10:49:08 -07:00
Kevin Sawicki 025967193a Add path require to top 2014-10-30 10:48:51 -07:00
Kevin Sawicki 75627f50a2 Normalize process.resourcesPath on load
This ensures the drive letter is consistent on Windows for when
package paths are compared to the resources path to determine
whether to use the metadata cache for a bundled package.

Closes #3932
2014-10-30 10:31:37 -07:00
Kevin Sawicki 9fca1d26f1 ⬆️ dev-live-reload@0.35 2014-10-30 10:22:26 -07:00
Kevin Sawicki 6e827434fd Log a warning when a enabled theme isn't installed 2014-10-30 10:04:38 -07:00
Kevin Sawicki b3f6b3af4b Merge pull request #3968 from lee-dohm/default-themes
Load the default themes when configured themes don't exist
2014-10-30 09:38:11 -07:00
Kevin Sawicki 63a33bd1e7 Merge pull request #3997 from atom/ks-remove-feedback-package
Remove feedback package
2014-10-30 09:26:17 -07:00
Kevin Sawicki a153f1e244 Move items around in help menu a bit 2014-10-30 09:11:06 -07:00
Kevin Sawicki 037a7f435c Add search issues to help menu 2014-10-30 09:11:06 -07:00
Kevin Sawicki 7641f1d1e4 Sync help menus on Linux/Windows 2014-10-30 09:11:06 -07:00
Kevin Sawicki 05c1ae71e1 Add report issue to Help menu 2014-10-30 09:11:05 -07:00
Kevin Sawicki cefabd4eb8 Add FAQ to help menu 2014-10-30 09:11:05 -07:00
Kevin Sawicki 9f80be4570 Add roadmap to help menu 2014-10-30 09:11:05 -07:00
Kevin Sawicki 61f75b0764 Add discussions to Help menu 2014-10-30 09:11:05 -07:00
Kevin Sawicki ae2f4ac36e Remove feedback package 2014-10-30 09:11:05 -07:00
Lee Dohm d20e91897a Load the default themes when configured themes don't exist 2014-10-29 19:42:42 -07:00
Kevin Sawicki 2e0bb66a9a Remove unneeded add encoding attr call 2014-10-29 16:03:57 -07:00
Kevin Sawicki d205c4d664 Add data attribute for encoding
Mirrors the grammar data attribute
2014-10-29 16:03:10 -07:00
Kevin Sawicki 8db5ea7bc7 ⬆️ encoding-selector@0.4 2014-10-29 14:59:26 -07:00
Nathan Sobo 3c7eecbb6a Dispose of scoped config subscriptions when TextEditorComponent unmounts
Fixes #3998
2014-10-29 15:04:39 -06:00
Kevin Sawicki 8dab3d90b3 ⬆️ grammar-selector@0.36 2014-10-29 13:58:29 -07:00
Kevin Sawicki 44bc470a00 ⬆️ encoding-selector@0.3 2014-10-29 13:39:26 -07:00
Kevin Sawicki 498631725a Store menu template even if window isn't focused
update may be called before the window gains focus to store its
template so it is updated correcltly once the window gains focus.
2014-10-29 13:06:57 -07:00
Kevin Sawicki 945345b0c7 📝 Update documentation styleguide 2014-10-29 11:59:25 -07:00
Kevin Sawicki 6576ec5cde Merge pull request #3987 from atom/ks-encodings
Add support for changing editor encoding
2014-10-29 11:58:31 -07:00
Kevin Sawicki ce8143f8e6 Add TextEditor::onDidChangeEncoding spec 2014-10-29 11:33:01 -07:00
Kevin Sawicki e993175205 💄 2014-10-29 11:33:01 -07:00
Kevin Sawicki 4242ac0911 🔨 Add jschardet license override 2014-10-29 11:33:01 -07:00
Kevin Sawicki f22e741a9b Bundle encoding-selector package 2014-10-29 11:33:01 -07:00
Kevin Sawicki a41b582032 ⬆️ text-buffer@3.4 2014-10-29 11:33:01 -07:00
Kevin Sawicki a24279d0b9 ⬆️ pathwatcher@2.3.2 2014-10-29 11:33:01 -07:00
Kevin Sawicki 5985175b07 📝 Fix typo 2014-10-29 11:33:01 -07:00
Kevin Sawicki d2ef888f22 Add TextEditor::onDidChangeEncoding 2014-10-29 11:33:01 -07:00
Kevin Sawicki 35925ed349 Add encoding getter and setter 2014-10-29 11:33:01 -07:00
Kevin Sawicki 490ec1aac7 ⬆️ pathwatcher@2.3.1 2014-10-29 11:33:01 -07:00
Kevin Sawicki 25eea7d19b Remove TextEditor::setEncoding 2014-10-29 11:33:01 -07:00
Kevin Sawicki 4c9e71770a Add initial TextEditor::setEncoding 2014-10-29 11:33:00 -07:00
Kevin Sawicki 4032d96b13 ⬆️ image-view@0.40 2014-10-29 11:32:49 -07:00
Kevin Sawicki c5aa3eb441 ⬆️ image-view@0.39 2014-10-29 11:27:55 -07:00
Kevin Sawicki 68bb765304 ⬆️ settings-view@0.154 2014-10-29 11:03:58 -07:00
Kevin Sawicki bd7996e071 Remove open profile 2014-10-29 10:55:46 -07:00
Kevin Sawicki 1eaba0cb52 ⬆️ fuzzy-finder@0.60 2014-10-29 10:36:09 -07:00
Kevin Sawicki 0c590d6170 Load CoffeeScript when using a custom resource path
Load CoffeeScript early whenever the resource path a subdirectory
from process.resourcesPath

Close #3993
2014-10-29 10:21:23 -07:00
Kevin Sawicki 3df72ec173 ⬆️ apm@0.109 2014-10-29 09:51:59 -07:00
Kevin Sawicki 1456bf0d91 📝 runnung -> running 2014-10-29 09:01:18 -07:00
Kevin Sawicki edec6b9b0a 🐎 Use cached pair character information
Tokenized lines break out atomic tokens so trust the hasPairCharacter
value on the token instead of rechecking it.
2014-10-28 18:15:13 -07:00
Kevin Sawicki 9abc4580f4 Don't recompute pair boolean when building token
Pass in hasPairedCharacter to the Token constructor when it is
being broken out from the parent token instead of recomputing it.
2014-10-28 18:15:13 -07:00
Nathan Sobo 54260230c6 ⬆️ git-diff to prevent updating diffs on destroyed editors 2014-10-28 19:08:30 -06:00
Kevin Sawicki 9bd11fc2f7 Merge pull request #3989 from Bengt/patch-1
Add initial instructions to build rpm from sources, ...
2014-10-28 17:10:22 -07:00
Bengt Lüers 81586d22f4 Add initial instructions to build rpm from sources, add packaging dependency for Fedora 2014-10-29 01:09:21 +01:00
Kevin Sawicki dc824485aa Pass character codes around in TextUtils
Previously the character codes were looked up for each type of character pair.
2014-10-28 16:55:36 -07:00
Kevin Sawicki d1fcfabf0b Move comment above module.exports
Make it parseable by donna

Refs atom/donna#2
2014-10-28 16:20:11 -07:00
Nathan Sobo ea8a3a78da Don’t hide pane items that are already hidden 2014-10-28 11:23:35 -06:00
Kevin Sawicki 62f5d0f7f3 ⬆️ go-to-line@0.26 2014-10-27 16:18:21 -07:00
Kevin Sawicki b3f4d03a82 Add Red Hat install instructions
0.140 include an .rpm file on the releases page and this adds back
the install text added by @ardeshirj in #3797
2014-10-27 16:08:21 -07:00
Kevin Sawicki c2d51858b1 ⬆️ markdown-preview@0.107 2014-10-27 15:25:14 -07:00
Kevin Sawicki a5bca03a46 Prepare 0.141 2014-10-27 15:12:44 -07:00
Nathan Sobo 02d20e3155 Call legacy SpacePen remove hooks before unmounting TextEditorComponent 2014-10-27 15:29:59 -06:00
Nathan Sobo 2910e017bb Unmount TextEditorComponent when TextEditor is destroyed
We don’t want to do it when the element is detached because it might
be caused by moving the editor rather than destroying it. Unmounting
the component entirely and then remounting it causes the hidden input
to not be recycled, interfering with focus restoration. Watching for
destruction of the model is a good way to ensure we always tear down
the view at the right time without doing it prematurely.
2014-10-27 15:12:30 -06:00
Kevin Sawicki 248e164de2 ⬆️ language-ruby@0.41 2014-10-27 13:31:16 -07:00
Nathan Sobo 4d796f614c Update Tokenized/DisplayBuffer prior to TextBuffer::onDidChange handlers
Fixes #3789
2014-10-27 13:56:23 -06:00
Kevin Sawicki a8be05bb3b Clear focused window property on window closed
Closes #3806
2014-10-27 11:30:41 -07:00
Kevin Sawicki 101904e261 Upgrade to bracket-matcher@0.62 2014-10-27 11:15:53 -07:00
Nathan Sobo c0622e8bb5 ⬆️ language-coffee-script to fix jasmine snippet quotes 2014-10-27 11:55:24 -06:00
Kevin Sawicki ce5b755438 📝 Mention profile picture 2014-10-27 10:45:15 -07:00
Nathan Sobo 86781e6f9a Assign pane container before emitting onDidAddPane events
Fixes #3972
2014-10-27 11:39:42 -06:00
Kevin Sawicki a7f4a5b08e ⬆️ markdown-preview@0.106 2014-10-27 10:38:43 -07:00
Nathan Sobo 2b8167da53 Merge pull request #3974 from atom/ns-throw-on-destroyed-editors
Throw on non-release builds if translating positions on destroyed editor
2014-10-27 11:32:48 -06:00
Kevin Sawicki bb0ee8a78b ⬆️ atom-dark-syntax@0.20 2014-10-27 09:42:54 -07:00
Kevin Sawicki d1115d4c7c ⬆️ atom-light-syntax@0.21 2014-10-27 09:40:31 -07:00
Kevin Sawicki a71d7115bf ⬆️ language-sass@0.24 2014-10-27 09:37:27 -07:00
Kevin Sawicki af14a26625 Merge pull request #3965 from brunetton/master
📝 fix TextEditor::delete() doc
2014-10-27 09:13:04 -07:00
Kevin Sawicki dadd56f7a0 ⬆️ language-php@0.17 2014-10-27 09:12:30 -07:00
Kevin Sawicki 0e99b70650 🐧 Add troubleshooting for system gyp error
Closes #2824
2014-10-27 08:45:15 -07:00
Nathan Sobo 2965398062 Throw on non-release builds if translating positions on destroyed editor
It’s possible that bundled packages stray into this corner case, so I’d
like us to catch and fix misbehaving packages before exposing users to 
any exceptions. Once we go one release with this turned on, we can
enable the exception for all builds.
2014-10-27 07:38:18 -06:00
Bruno Duyé 55ace0fe99 📝 fix TextEditor::delete() doc 2014-10-25 19:35:19 +02:00
Nathan Sobo 03f7511229 ⬆️ find and replace for focus transfer fix 2014-10-24 16:14:52 -06:00
Kevin Sawicki 5f7976cada ⬆️ apm 0.108 2014-10-24 14:14:10 -07:00
Kevin Sawicki fa074431f9 Merge pull request #3953 from atom/ks-support-combining-characters
Support unicode combining characters
2014-10-24 14:13:40 -07:00
Kevin Sawicki b9239ffc57 Add spec for cursor position after pair char 2014-10-24 13:31:43 -07:00
Kevin Sawicki 06698c880f Access value on token 2014-10-24 13:31:43 -07:00
Kevin Sawicki 05dc9aad89 💄 2014-10-24 13:31:43 -07:00
Kevin Sawicki e5660e5e83 🐎 Only use String::substr for pair chars 2014-10-24 13:31:43 -07:00
Kevin Sawicki e928447eab Stored paired characters in width cache
Previously characters were treated individually even when multiple
characters would render as a single character on screen.
2014-10-24 13:31:43 -07:00
Kevin Sawicki 9b0f622ffb 📝 Mention combined characters in spec description 2014-10-24 13:31:42 -07:00
Kevin Sawicki b6cc7273a1 Add combined characters to spec 2014-10-24 13:31:42 -07:00
Kevin Sawicki 232be1f876 📝 Mention combined characters 2014-10-24 13:31:42 -07:00
Kevin Sawicki ddeec5d4d5 Treat combined characters as paired characters 2014-10-24 13:31:42 -07:00
Ben Ogle dc83f8bac7 Merge pull request #3944 from atom/bo-defer-config-load
Give scoped user settings a priority
2014-10-24 13:10:49 -07:00
Ben Ogle ae2a7769ed Upgrade scoped-property-store for priority option 2014-10-24 13:08:00 -07:00
Ben Ogle d0d6af7e55 Specs for priority 2014-10-24 13:07:14 -07:00
Ben Ogle 137df72a60 Give the user settings a priority
Base index 1000
2014-10-24 13:07:14 -07:00
Ben Ogle 2e187d3ec1 Upgrade scandal@1.0.3 for isBinary Fix 2014-10-24 11:48:03 -07:00
Ben Ogle 9f74250333 Upgrade whitespace to use scoped properties 2014-10-24 11:18:09 -07:00
Nathan Sobo de70a181c5 Upgrade text-buffer to avoid many position translation errors
Refs #3192
2014-10-24 10:55:51 -06:00
Kevin Sawicki 0272b2f281 ⬆️ spell-check@0.43 2014-10-24 09:15:09 -07:00
Kevin Sawicki 365b7bfaf9 Merge pull request #3950 from avdv/patch-1
Update linux.md
2014-10-24 09:11:35 -07:00
Claudio Bley 937ef321bd Update linux.md
You need to have python2 installed on Arch.

Otherwise you get build ENOENT errors using npm-gyp.
2014-10-24 14:08:10 +02:00
Kevin Sawicki 80a302df9e ⬆️ apm 0.107 2014-10-23 17:55:21 -07:00
Kevin Sawicki 381ee353a3 Upgrade to git-diff@0.41 2014-10-23 16:06:14 -07:00
Kevin Sawicki de3703d1ea 📝 Mark CommandRegistry and atom.commands public 2014-10-23 14:08:09 -07:00
Kevin Sawicki 0b8c4a0c7f ⬆️ image-view@0.38 2014-10-23 12:20:13 -07:00
Kevin Sawicki d299692237 Use correct 64-bith arch 2014-10-23 12:02:52 -07:00
Kevin Sawicki eaf435bd9a Merge pull request #3942 from atom/ks-fedora-dockerfile
Add Dockerfile to build an RPM on CI
2014-10-23 11:36:31 -07:00
Kevin Sawicki 8d71cbd510 📝 Mention fedora/debian checks 2014-10-23 11:10:18 -07:00
Kevin Sawicki 534ace6250 Use x64_64 as arch in rpm name 2014-10-23 11:09:48 -07:00
Kevin Sawicki 89157cdf29 Restore master only uploads 2014-10-23 10:49:05 -07:00
Kevin Sawicki ef2795ea0d Use bash 2014-10-23 10:35:18 -07:00
Kevin Sawicki 11b5bcff74 Use BUILD_ATOM_RPM_ACCESS_TOKEN 2014-10-23 10:10:05 -07:00
Kevin Sawicki d7019509e3 Return early when no token set 2014-10-23 10:01:26 -07:00
Kevin Sawicki 0417458fbb Log when token is missing 2014-10-23 09:56:44 -07:00
Kevin Sawicki ff32fff483 Add missing mkdir assignment 2014-10-23 09:28:47 -07:00
Kevin Sawicki f776678b83 Recreate rpm dir after deleting 2014-10-23 09:20:28 -07:00
Kevin Sawicki edacf02222 📝 Tweak image description 2014-10-23 09:11:13 -07:00
Kevin Sawicki 4b3d3701d5 Add rpm segment in mkrpm script 2014-10-23 09:10:16 -07:00
Kevin Sawicki dcbd1723b7 ⬆️ language-less@0.18 2014-10-23 08:58:35 -07:00
Kevin Sawicki 6c00dbd5ec ⬆️ language-less@0.17 2014-10-23 08:45:49 -07:00
Cheng Zhao 14fd4a9f7d 'enabled' is also a valid item attribute, fixes #3880 2014-10-23 10:34:15 +08:00
Kevin Sawicki b65c6da948 Add rm assignment to right task 2014-10-22 18:09:47 -07:00
Kevin Sawicki 1c1adf5beb Add missing rm assignment 2014-10-22 17:57:15 -07:00
Kevin Sawicki c1197d6390 Map BUILD_ATOM_LINUX_ACCESS_TOKEN to ATOM_ACCESS_TOKEN 2014-10-22 17:50:23 -07:00
Kevin Sawicki 7713720ba7 Drop x flag 2014-10-22 17:47:29 -07:00
Kevin Sawicki 4f1ec786f0 Add missing _ in env var 2014-10-22 17:47:13 -07:00
Kevin Sawicki 27ff02ad0e script/dockerbuild -> script/rpmbuild 2014-10-22 17:41:25 -07:00
Kevin Sawicki 738cdb6e66 Add missing _ in env var 2014-10-22 17:38:06 -07:00
Kevin Sawicki 0818e6d736 Log stack for now 2014-10-22 17:35:39 -07:00
Kevin Sawicki 6b57030bda Test uploads on this branch 2014-10-22 17:33:26 -07:00
Kevin Sawicki b64a5c93e3 Pass through needed env vars 2014-10-22 17:32:52 -07:00
Kevin Sawicki 317001b435 Do everything from dockerbuild script 2014-10-22 17:27:13 -07:00
Kevin Sawicki 4e3d15592e Upload .rpm file when available 2014-10-22 17:26:58 -07:00
Kevin Sawicki f4c40c2932 Publish build from dockerbuild 2014-10-22 17:26:35 -07:00
Kevin Sawicki 9cfc451a79 Remove RPM directory before rebuilding 2014-10-22 17:26:23 -07:00
Kevin Sawicki 198d3e90c7 Add initial rpm cibuild script 2014-10-22 17:04:59 -07:00
Kevin Sawicki 00da8a9df6 Build into rpm directory 2014-10-22 17:03:30 -07:00
Kevin Sawicki 293bd3ad3d Add initial script/dockerbuild 2014-10-22 17:03:19 -07:00
Kevin Sawicki bd0564e30d Move rpm Dockerfile to root 2014-10-22 17:03:05 -07:00
Kevin Sawicki 953940c757 Move debian Dockerfile to build folder 2014-10-22 16:53:22 -07:00
Kevin Sawicki 4ff6366d2b Add initial script/cibuild-atom-rpm 2014-10-22 16:18:05 -07:00
Kevin Sawicki 4db441f4df Add initial Fedora Dockerfile 2014-10-22 16:12:29 -07:00
Kevin Sawicki 71ef21bb70 📝 Link to roadmap issue 2014-10-22 12:59:57 -07:00
Kevin Sawicki de5e443329 Merge pull request #3925 from jfrazelle/dockerfile
Add Dockerfile.
2014-10-22 11:12:52 -07:00
Kevin Sawicki 6e15d68163 Prepare 0.140 2014-10-22 10:38:01 -07:00
Jessica Frazelle 6a3c7bcd50 Add Dockerfile.
I'm just going to leave this here.

You see I was trying to containerize a node webkit app, so I
thought why not atom. Except halfway through I realized it
actually isn't a node webkit app. I finished it anyways
because I had already started. It mounts the X11 socket
so it's a containerized desktop app.
You can do what you want with it.

But since this is OSS, I am going to give you my opinion
anyway. So here it is:
You should take this and use it as a build script, because
it seems like building this is a real PITA.

Ok that's all, enjoy.
Also this file was written in vim.
No, I'm not sorry.

Signed-off-by: Jessica Frazelle <jess@docker.com>
2014-10-22 10:27:25 -07:00
Kevin Sawicki dfc0df42b2 ⬆️ underscore-plus@1.6.1 2014-10-22 10:21:08 -07:00
Kevin Sawicki 452c78b735 Use local variable over calling method again 2014-10-22 09:31:45 -07:00
Kevin Sawicki 42f67033cc Merge pull request #3916 from suda/master
Setting ATOM_HOME
2014-10-22 09:31:11 -07:00
Kevin Sawicki 5c417cf9cc ⬆️ language-sass@0.23 2014-10-21 17:31:40 -07:00
Kevin Sawicki 81143af4b4 Upgrade to markdown-preview@0.105 2014-10-21 16:41:39 -07:00
Kevin Sawicki 5c048a4f13 ⬆️ less-cache@0.17 2014-10-21 15:57:00 -07:00
Kevin Sawicki 2ac9cc9ed1 ⬆️ less-cache@0.16 2014-10-21 15:51:16 -07:00
Kevin Sawicki e8f8ead53f ⬆️ donna@1.0.6 2014-10-21 15:19:18 -07:00
Kevin Sawicki f3d8c5d7ec ⬆️ language-javascript@0.42 2014-10-21 15:14:18 -07:00
Ben Ogle 7d179ef40f Revert "back to 1.0.1"
This reverts commit 375b8efc22.
2014-10-21 14:41:12 -07:00
Ben Ogle 375b8efc22 back to 1.0.1 2014-10-21 14:34:00 -07:00
Kevin Sawicki 086a011a63 Upgrade to settings-view@0.153 2014-10-21 14:30:16 -07:00
Ben Ogle 46ff52b13a UPgrade donna again 2014-10-21 14:16:30 -07:00
Ben Ogle 0ed4d07c33 Upgrade to donna@1.0.4 2014-10-21 14:13:48 -07:00
Kevin Sawicki efe3d65291 Only upload on master 2014-10-21 14:11:06 -07:00
Kevin Sawicki 8576486d06 Prepare docs when building all branches 2014-10-21 14:10:44 -07:00
Kevin Sawicki e5abca138d ⬆️ language-gfm@0.53 2014-10-21 13:50:40 -07:00
Kevin Sawicki fa24154e24 ⬆️ grunt-download-atom-shell@0.10 2014-10-21 13:50:16 -07:00
Kevin Sawicki 45c05d3b7d Merge pull request #3917 from atom/ks-packages-slug
Inline package metadata in main package.json file
2014-10-21 13:49:39 -07:00
Kevin Sawicki bf4ac1d3eb 💄 2014-10-21 13:28:09 -07:00
Kevin Sawicki 892cdae622 Return false when resource path does not match resources path 2014-10-21 13:28:09 -07:00
Kevin Sawicki f33d7ba27f 📝 store -> stored 2014-10-21 13:28:09 -07:00
Kevin Sawicki 06436ef530 📝 Remove extra to 2014-10-21 13:28:09 -07:00
Kevin Sawicki 815244bba0 Delete from local cache reference 2014-10-21 13:28:08 -07:00
Kevin Sawicki 0303ebb5e5 Add resolved main path to package cache 2014-10-21 13:28:08 -07:00
Kevin Sawicki eab791d47e Cache paths are relative to resource path 2014-10-21 13:28:08 -07:00
Kevin Sawicki 6ad96d98b8 Bypass cache when in dev mode 2014-10-21 13:28:08 -07:00
Kevin Sawicki ed4ebefdc1 Use resourcePath on PackageManager 2014-10-21 13:28:08 -07:00
Kevin Sawicki a1828fa3a6 Remove package's package.json from cache
This file is inlined in the main package.json
2014-10-21 13:28:08 -07:00
Kevin Sawicki 345c0f670c Ignore extensions from bundled packages
These are generated in their own cache
2014-10-21 13:28:08 -07:00
Kevin Sawicki d78e6fa711 Build path manually 2014-10-21 13:28:08 -07:00
Kevin Sawicki c3a6475308 Remove unused properties from metadata
Saves another ~50k
2014-10-21 13:28:08 -07:00
Kevin Sawicki 2cc9f6bee8 Use absolute keymap/menu paths 2014-10-21 13:28:08 -07:00
Kevin Sawicki 0c6fba2ce2 Remove inlined files from app directory 2014-10-21 13:28:08 -07:00
Kevin Sawicki fa72db87a2 Update task description 2014-10-21 13:28:07 -07:00
Kevin Sawicki a0d7bbdb92 Don't pretty print package.json
It is now ~400k pretty printed and ~300k without
2014-10-21 13:28:07 -07:00
Kevin Sawicki 4c3e1ef82b 💄 2014-10-21 13:28:07 -07:00
Kevin Sawicki 1056418f97 Only use cache for bundled packages 2014-10-21 13:28:07 -07:00
Kevin Sawicki 37040ad485 Use _atomPackage key from main metadata 2014-10-21 13:28:07 -07:00
Kevin Sawicki dee9cccae7 Use proper relative paths in cache 2014-10-21 13:28:07 -07:00
Kevin Sawicki 50e27854cc Cache package metadata in main package.json file 2014-10-21 13:28:07 -07:00
Ben Ogle c931071c91 Merge pull request #3910 from atom/bo-descriptor-object
Add a ScopeDescriptor object
2014-10-21 13:27:17 -07:00
Ben Ogle 498c8d21b2 Fix comments n junk 2014-10-21 13:27:01 -07:00
Ben Ogle 263b792eee Merge pull request #3907 from atom/bo-scoped-schema
Add support for scoped defaults in config schemas
2014-10-21 13:12:18 -07:00
Ben Ogle ffd3990a6b Split with the new method 2014-10-21 11:57:01 -07:00
Ben Ogle 31490ca31e Last of scopeDescriptor -> scopes from tokens 2014-10-21 11:49:49 -07:00
Ben Ogle 37159bb478 Oops, don’t call the method twice 2014-10-21 11:44:58 -07:00
Ben Ogle 16ad957609 scopeDescriptor -> scopes
Now that we have a real ScopeDescriptor object, 
these should change back!
2014-10-21 11:38:43 -07:00
Ben Ogle 137eeab4cf Return scopes arrays from deprecated methods
backward compatibility
2014-10-21 11:19:58 -07:00
Kevin Sawicki ce2076f30a Merge pull request #3909 from atom/ks-extension-cache-for-packages
Add extension cache for installed packages
2014-10-21 11:12:31 -07:00
Kevin Sawicki 8479d564f5 Enable extensions for installed packages 2014-10-21 11:02:24 -07:00
Kevin Sawicki ec6004615a Load extensions in ModuleCache.create 2014-10-21 10:59:29 -07:00
Kevin Sawicki 7e7441dc23 Merge pull request #3906 from atom/ks-change-menu-on-focus
Swap out application menus on focus
2014-10-21 10:36:14 -07:00
Kevin Sawicki 2a09d25eb1 📝 Add template 2014-10-21 10:22:50 -07:00
Kevin Sawicki d5508b338b Compare templates before swapping them out 2014-10-21 10:22:50 -07:00
Kevin Sawicki 86bd43bf73 Store each window's menu template
Restore it when the window gains focus
2014-10-21 10:22:50 -07:00
Kevin Sawicki 3075b74b64 Close the template
Menu.buildFromTemplate modifies it so copy before hand
so it can be reused
2014-10-21 10:22:50 -07:00
Kevin Sawicki 11d7437ecc Add setActiveTemplate helper 2014-10-21 10:22:49 -07:00
Cheng Zhao df439f5ada Merge pull request #3915 from atom/atom-shell-v0.18.2
Upgrade to atom-shell@0.18.2
2014-10-21 23:02:18 +08:00
Wojtek Siudzinski dc28ddbdc8 Setting ATOM_HOME 2014-10-21 16:55:10 +02:00
Nathan Sobo 49e98d368a Log a warning if a package has an incompatible main module
I’ve been tripped up by this twice now, so it would be good to provide
some feedback when it happens.
2014-10-21 08:54:16 -06:00
Cheng Zhao 02e91aa4cd ⬆️ atom-shell@0.18.2 2014-10-21 22:46:40 +08:00
Ben Ogle 14c8e9cedc Fix specs 2014-10-20 18:40:32 -07:00
Kevin Sawicki 4867e3ef14 Upgrade to tabs@0.55 2014-10-20 18:03:11 -07:00
Ben Ogle 3a70b98ae1 ScopeDescriptor::create -> fromObject 2014-10-20 17:59:28 -07:00
Ben Ogle 08f35531ba Update descriptor docs 2014-10-20 17:49:14 -07:00
Ben Ogle ce2959c0b9 Return ScopeDescriptor objects 2014-10-20 17:49:02 -07:00
Ben Ogle 4c4b82fe6c Add new ScopeDescriptor object 2014-10-20 17:29:46 -07:00
Kevin Sawicki f4c3050050 Upgrade to snippets@0.56 2014-10-20 17:14:42 -07:00
Ben Ogle 2b148b7720 Accept escaped dots in config settings keys
Fixes #3898
2014-10-20 16:58:57 -07:00
Ben Ogle c40dd16466 Upgrade to underscore-plus 1.6 2014-10-20 16:57:46 -07:00
Ben Ogle 7ffe5d1385 Add support for scoped defaults in config schemas 2014-10-20 14:52:12 -07:00
Kevin Sawicki c2ef68a435 Go back to using a concurrency of 2 2014-10-20 14:21:20 -07:00
Kevin Sawicki aa117774b3 Experiment with longer timeout on Mac CI 2014-10-20 13:52:39 -07:00
Kevin Sawicki 6b44369458 Log time taken to upload 2014-10-20 13:37:19 -07:00
Kevin Sawicki 177b3a6d14 Use all the available cores on CI 2014-10-20 13:35:09 -07:00
Ben Ogle 4d1e488ef4 Add contributing to packages to the index 2014-10-20 13:34:15 -07:00
Ben Ogle 0a39c28a79 update contributing to packages to not mention amp develop 2014-10-20 13:34:15 -07:00
Kevin Sawicki e019347ca4 Output total spec time 2014-10-20 13:28:30 -07:00
Ben Ogle b425df1d58 Merge pull request #3837 from atom/bo-panel-api
Add panel API
2014-10-20 13:25:48 -07:00
Ben Ogle 055c632ee9 Call save() in restoreDefault() for scopedSettings 2014-10-20 12:29:46 -07:00
Ben Ogle 2ac1862e5f Remove toHide matcher. 2014-10-20 12:12:21 -07:00
Ben Ogle 5a82afd333 💄 2014-10-20 12:03:48 -07:00
Kevin Sawicki 13f81a452d Upgrade to language-less@0.16 2014-10-20 10:16:22 -07:00
Kevin Sawicki c8144b7e1b Upgrade to language-yaml@0.19 2014-10-20 09:40:36 -07:00
Nathan Sobo b3b78fa926 Merge pull request #3883 from atom/ns-core-specs-from-anywhere
Allow core specs from command line in atom repository regardless of its location
2014-10-20 10:29:13 -06:00
Nathan Sobo 824c00dab3 Add environment variable to the usage string instead of at end 2014-10-20 10:12:32 -06:00
Nathan Sobo 8d331e94d2 Preserve alphabetical sort order for options 2014-10-20 10:07:40 -06:00
Nathan Sobo bc2dd9f52c Drop unnecessary encoding argument 2014-10-20 10:06:19 -06:00
Nathan Sobo 5dd9f9c5ad Fix typo in comment 2014-10-20 10:05:53 -06:00
Kevin Sawicki 3f1afec15b 📝 Link to CSON description 2014-10-20 09:01:17 -07:00
Kevin Sawicki e4705d45c4 Merge pull request #3769 from Maxhodges/keymap-advice
Warn new users we are using a little known format (cson), not the more popular json doc notation.
2014-10-20 08:58:12 -07:00
Kevin Sawicki c0846ab8a6 Upgrade to deprecation-cop@0.11 2014-10-20 08:55:36 -07:00
Kevin Sawicki bfbb262844 Merge pull request #3886 from fenuks/patch-1
Add GenericName to .desktop file
2014-10-20 08:32:13 -07:00
fenuks 5669aa39ce 🐧 Add GenericName to .desktop file, fixes #3885 2014-10-18 20:07:54 +02:00
Nathan Sobo d1f9133ef4 Merge pull request #3830 from atom/ns-extract-style-manager
Extract style manager from theme manager
2014-10-17 18:11:16 -06:00
Nathan Sobo 362c9c8588 Document ATOM_DEV_RESOURCE_PATH environment variable in atom —help 2014-10-17 18:00:45 -06:00
Nathan Sobo c63cde1cd3 Set resource path based on spec directory when running atom core specs
Fixes #3872
2014-10-17 18:00:21 -06:00
Nathan Sobo 6d937831b9 Clarify spec-directory documentation in atom executable 2014-10-17 17:18:43 -06:00
Nathan Sobo 0eacbed162 Document the resource-path option to atom executable 2014-10-17 17:18:30 -06:00
Ben Ogle 6e034c6319 Call the attach hooks after adding a view to a panel. 2014-10-17 16:04:11 -07:00
Kevin Sawicki a4f6c674ef Upgrade to timecop@0.23 2014-10-17 15:51:57 -07:00
Kevin Sawicki 405af7fb16 Track time taken to read window state
Refs atom/timecop#6
2014-10-17 15:44:59 -07:00
Ben Ogle 995e89b5f6 📝 Move panels API for the sake of the docs 2014-10-17 15:42:16 -07:00
Kevin Sawicki 6b90b83867 ⬆️ apm@0.106 2014-10-17 15:34:03 -07:00
Ben Ogle 66d469ee10 Deprecate workspace pane methods 2014-10-17 15:31:56 -07:00
Ben Ogle 657cbc9c17 📝 Doc the new panel methods 2014-10-17 15:24:20 -07:00
Ben Ogle 29ea506f93 Doc Panel class 2014-10-17 15:23:20 -07:00
Ben Ogle 155d144788 Fix spec 2014-10-17 15:23:06 -07:00
Kevin Sawicki 892f341feb ⬆️ apm@0.105 2014-10-17 14:45:52 -07:00
Kevin Sawicki d5808b5c85 Merge pull request #3867 from atom/ks-select-past-last-line
Fix selecting past the last line
2014-10-17 14:38:18 -07:00
Kevin Sawicki d6feb686c1 Mention single click 2014-10-17 14:00:26 -07:00
Kevin Sawicki 5069a5b48b Add spec for clicking past last line 2014-10-17 14:00:25 -07:00
Kevin Sawicki 8c136b18c2 Set targetLeft to Infinity when past last row 2014-10-17 14:00:25 -07:00
Kevin Sawicki f81bc4b870 Never break when past the last row 2014-10-17 14:00:25 -07:00
Adam Boesch 111b956f93 Fix cursor not being able to move within the last line of text. 2014-10-17 14:00:25 -07:00
Adam Boesch 88a95ad06b Fix cursor so clicking the below the last line of text puts the cursor at
the end of the last line.
2014-10-17 14:00:25 -07:00
Kevin Sawicki 04bd602c23 Upgrade to language-c@0.29 2014-10-17 13:59:05 -07:00
Ben Ogle de78e53b35 Add priority system to the panels 2014-10-17 13:44:40 -07:00
Kevin Sawicki fb1a866447 Prepare 0.139 2014-10-17 13:18:59 -07:00
Kevin Sawicki 8925d309b0 Only build debian package for now 2014-10-17 12:59:42 -07:00
Ben Ogle b94485eafd Set the heights of atom panels for location left and right. 2014-10-17 12:08:24 -07:00
Cheng Zhao a83acd0e8a Merge pull request #3874 from atom/atom-shell-v0.18.1
⬆️ atom-shell@0.18.1
2014-10-17 19:43:04 +08:00
Cheng Zhao 4e2c500b64 ⬆️ atom-shell@0.18.1 2014-10-17 19:14:07 +08:00
Kevin Sawicki 03f863d558 ⬆️ language-toml@0.14 2014-10-16 18:48:04 -07:00
Kevin Sawicki b8ad484db0 ⬆️ language-ruby@0.40 2014-10-16 17:32:29 -07:00
Ben Ogle f0fd7c2682 Add hide/show ability for panels 2014-10-16 17:32:24 -07:00
Ben Ogle 3f170a8b5e Add matcher toHide() 2014-10-16 17:31:30 -07:00
Ben Ogle 37a7cfaf9a Remove location junk from panel creation 2014-10-16 17:31:13 -07:00
Ben Ogle 5683491029 Rename custom element so as not to clash 2014-10-16 17:30:54 -07:00
Ben Ogle 4ca630a7da orientation -> location 2014-10-16 16:54:08 -07:00
Ben Ogle 99aedbab89 Panel container probably not public 2014-10-16 16:49:18 -07:00
Ben Ogle 52c05eade7 Render proper atom-panels as children of containers 2014-10-16 16:48:56 -07:00
Kevin Sawicki 1ddb956a94 Cache versions that do not match the range 2014-10-16 16:32:52 -07:00
Kevin Sawicki 2570c20da0 Merge pull request #3860 from atom/ks-join-line-single-space
Join lines with a single space
2014-10-16 16:31:59 -07:00
Ben Ogle 299710f08a Integrate the pane containers into the workspace 2014-10-16 16:17:44 -07:00
Ben Ogle 83e5873f3b Panel containers have the orientation 2014-10-16 16:16:49 -07:00
Kevin Sawicki 4889e03cf2 Always move to end of current line 2014-10-16 16:13:38 -07:00
Kevin Sawicki 7f6cc8a100 📝 Correct typos 2014-10-16 16:13:38 -07:00
Kevin Sawicki e8e0ee1e34 📝 form -> from 2014-10-16 16:13:37 -07:00
Kevin Sawicki 8e3d8eda31 Removed added newline 2014-10-16 16:13:37 -07:00
Kevin Sawicki afd1fa995f 💄 2014-10-16 16:13:37 -07:00
Kevin Sawicki a03c9b6d68 Add trailing whitespace to line 2014-10-16 16:13:37 -07:00
Kevin Sawicki cdd31d69a8 Add spec for joining from empty line 2014-10-16 16:13:37 -07:00
Kevin Sawicki f94983d4d9 Scan buffer to remove trailing whitespace 2014-10-16 16:13:37 -07:00
Adam Boesch ffa528001c Fix join lines so that only a single space will exist between two lines that are joined. 2014-10-16 16:13:37 -07:00
Kevin Sawicki 305b9bc030 Add missing require 2014-10-16 16:13:23 -07:00
Kevin Sawicki 6ed3ef3f60 Only require coffee file when available
Closes #3864
2014-10-16 15:41:23 -07:00
Ben Ogle 5c2e55861c Add panel containers 2014-10-16 15:33:28 -07:00
Nathan Sobo c0843d467d Opt out of command registration for textInput events
There seems to be issues capturing them when they are programmatically
dispatched via dispatchEvent. This was causing problems for the vim-mode
specs. This event belongs among the native events that aren’t treated
as commands anyway.
2014-10-16 15:58:14 -06:00
Ben Ogle 734a79b7ec Add initial panel API.
It can only add things to the left right now.
2014-10-16 13:44:03 -07:00
Ben Ogle 55a5e66701 Merge pull request #3831 from atom/bo-scoped-docs
Add docs for scope selectors and scope descriptors.
2014-10-16 13:26:53 -07:00
Ben Ogle da86c86577 Integrate feedback 2014-10-16 13:26:07 -07:00
Ben Ogle 072c537b6b Upgrade language-gfm 2014-10-16 13:23:35 -07:00
Ben Ogle 1577a28ad4 Add links to the new doc in the API docs 2014-10-16 13:23:34 -07:00
Ben Ogle ee23131688 Rename scopes -> Scope selectors in config::set docs 2014-10-16 13:23:34 -07:00
Ben Ogle 7d8b5bc1fc Add scopes and scope descriptors docs 2014-10-16 13:23:34 -07:00
Ben Ogle 0243597ee8 ⬆️ Upgrade python language to use 4 space tabs 2014-10-16 13:21:41 -07:00
Ben Ogle 50a5609c6b Merge pull request #3847 from atom/bo-scoped-defaults
Add scoped defaults
2014-10-16 11:04:15 -07:00
Kevin Sawicki e76ea838e1 ⬆️ apm 0.104 2014-10-16 09:10:58 -07:00
Kevin Sawicki ed5c011963 :up_arrow: link@0.26 2014-10-15 18:19:44 -07:00
Ben Ogle 0bc1407e7d 📝 Add doc strings 2014-10-15 18:16:44 -07:00
Ben Ogle 7aa00f3417 ⬆️ scoped-property-store 2014-10-15 18:13:15 -07:00
Nathan Sobo 06e9dbf48a 💄 Remove confusing parentheses usage 2014-10-15 19:11:13 -06:00
Kevin Sawicki ff5acb6a34 Upgrade to language-coffee-script@0.36 2014-10-15 18:07:47 -07:00
Nathan Sobo 231295cb2c Add dummy commands prior to package activation so they appear in palette
Fixes #3846
2014-10-15 18:55:38 -06:00
Kevin Sawicki c8a18dfaf8 ⬆️ git-diff@0.40 2014-10-15 17:25:45 -07:00
Kevin Sawicki b339baa923 ⬆️ language-go@0.19 2014-10-15 17:07:20 -07:00
Kevin Sawicki 92d08b47ad Add config for font zooming when Ctrl+Scrolling 2014-10-15 16:59:43 -07:00
Kevin Sawicki 5c3a7a99fc Merge pull request #3737 from russlescai/rl-mousewheel-ctrl-zoom-with-fixes
Adjust font size using Control key with Mouse Scroll Wheel.
2014-10-15 16:52:46 -07:00
Kevin Sawicki ea932a01f9 Build in ~/rpmbuild 2014-10-15 16:42:42 -07:00
Kevin Sawicki d261df0906 Add missing buildDir variable 2014-10-15 16:38:21 -07:00
Kevin Sawicki fac167379f Copy rpm file to build directory 2014-10-15 16:37:16 -07:00
Kevin Sawicki f6d9af8d1a Build rpm in temp folder 2014-10-15 16:34:18 -07:00
Kevin Sawicki a128cf5eb3 Remove rpm install instructions
Will add back once the first rpm release is made
2014-10-15 16:31:25 -07:00
Kevin Sawicki e9c2ee9675 Report errors from mkrpm 2014-10-15 16:31:13 -07:00
Kevin Sawicki e85d33b2a6 Merge pull request #3797 from ardeshirj/mkrpm
mkrpm grunt task
2014-10-15 16:30:16 -07:00
Ben Ogle a42b3ff171 Support a scopeSelector in getSettings() 2014-10-15 16:26:03 -07:00
Ardeshir Javaherchi 86fdbfbb15 🐧 Update to atom.desktop in mkrpm and remove extra variables 2014-10-15 15:53:32 -07:00
Ben Ogle 757abfe3db Config::restoreDefaults handles scopes 2014-10-15 15:33:38 -07:00
Ardeshir Javaherchi cde7940e40 Merge branch 'master' into mkrpm 2014-10-15 15:21:01 -07:00
Ben Ogle d7d6e506da ScopeChainForScopeDescriptor 2014-10-15 15:11:41 -07:00
Ben Ogle 593fc1e77a name -> source 2014-10-15 15:11:27 -07:00
Ben Ogle ae857203fd Support scoped settings in getDefault 2014-10-15 15:11:19 -07:00
Kevin Sawicki a1c418e995 ⬆️ Upgrade to apm 0.103 2014-10-15 15:09:11 -07:00
Kevin Sawicki f07f096f56 Use Range class that memoizes 2014-10-15 14:47:24 -07:00
Ben Ogle 62c1972c95 isDefault supports scoped settings 2014-10-15 14:44:16 -07:00
Nathan Sobo 314c525d2d Assign properties in addition to attributes for convenience 2014-10-15 15:14:13 -06:00
Nathan Sobo 04b3eef768 Fix theme-manager-specs 2014-10-15 15:14:13 -06:00
Nathan Sobo 506753a535 Subscribe to <atom-styles> element to shim events in ThemeManager
This is better than subscribing to atom.styles because the events it
emits contain the *actual* style elements we insert into the DOM.
2014-10-15 15:14:13 -06:00
Nathan Sobo a8b9e1b790 Handle style element updates in StylesElement 2014-10-15 15:14:13 -06:00
Nathan Sobo be51ccf786 Add StylesElement::onDidAdd/RemoveStyleElement 2014-10-15 15:14:13 -06:00
Nathan Sobo 65e077abd1 Use StyleManager and StylesElement to manage all stylesheet elements
For now, loading remains in the theme manager, but all application of
stylesheets is routed through atom.styles.
2014-10-15 15:14:13 -06:00
Nathan Sobo 79598aaae9 Add StyleElement
This will be used to handle stylesheet rendering when we move management
of loading stylesheets to the StyleManager instead of the theme manager.
This sets us up for being able to render specific stylesheets in shadow
roots in addition to just having global stylesheets.
2014-10-15 15:14:13 -06:00
Nathan Sobo 62a43c6fb9 Revise StyleManager API 2014-10-15 15:14:12 -06:00
Nathan Sobo 1fe1147901 Add group parameter to StyleManager::addStyleSheet
This can be used to sequence style elements at the correct location in
the cascade even if they are loaded later than elements in a subsequent
group.
2014-10-15 15:14:12 -06:00
Nathan Sobo 1c97dcd195 Add sourcePath parameter to StyleManager::addStyleSheet 2014-10-15 15:14:12 -06:00
Nathan Sobo d3371dbcd2 Start on StyleManager
This will take over raw stylesheet management from the theme manager
now that it’s becoming more complex with the need to target specific
host elements. Instead of actually adding nodes to the head of the
document, it will instead simply manage a set of stylesheets we want to
apply and leave actual DOM manipulation to <atom-styles> custom elements
that can render the set of active stylesheets in the appropriate
locations.
2014-10-15 15:14:12 -06:00
Kevin Sawicki b2b4860983 Merge pull request #3761 from atom/ks-require-cache
Cache requires across installed packages
2014-10-15 14:00:10 -07:00
Kevin Sawicki 57fc3deaed Assert that resolved atom shell module paths exist 2014-10-15 13:12:42 -07:00
Kevin Sawicki 677949d61c Check that all builtins resolve without hitting fs 2014-10-15 13:09:47 -07:00
Kevin Sawicki e09d7159bc Add spec for no compatible module version available 2014-10-15 13:09:47 -07:00
Kevin Sawicki e02af51a04 🐎 Extend range to memoize matched versions 2014-10-15 13:09:47 -07:00
Kevin Sawicki d2c7a2caca Return early when cache to add is missing 2014-10-15 13:09:47 -07:00
Kevin Sawicki 739a629552 💄 2014-10-15 13:09:47 -07:00
Kevin Sawicki 88f0183352 Remove unneeded quotes 2014-10-15 13:09:47 -07:00
Kevin Sawicki 7f01a163e5 💄 2014-10-15 13:09:47 -07:00
Kevin Sawicki fc44662ba3 Add spec for resolving compatible module paths 2014-10-15 13:09:47 -07:00
Kevin Sawicki 5052aaca95 Don't leave empty paths with a trailing slash 2014-10-15 13:09:46 -07:00
Kevin Sawicki 826681b6c2 Add relative path cache spec 2014-10-15 13:09:46 -07:00
Kevin Sawicki 8334bba484 Add initial ModuleCache spec 2014-10-15 13:09:46 -07:00
Kevin Sawicki a0ae526017 Check candidates after ranges
This way builtins are checked for correctly when the
range isn’t found
2014-10-15 13:09:46 -07:00
Kevin Sawicki 6a6c7b1852 Calculate load time in index.js
Do it previously in window-bootstrap caused several things to not be
included such as requiring coffee script and atom shell modules.

Now it is a much more accurate representation of on load time.
2014-10-15 13:09:46 -07:00
Kevin Sawicki 42040f8a9d Return early when no candidates exist 2014-10-15 13:09:46 -07:00
Kevin Sawicki 9d1db0f3de Remove unneeded trailing slash check
Package names don’t have these anyway and file paths
won’t be ending with them.
2014-10-15 13:09:46 -07:00
Kevin Sawicki f0b922f643 Use String::startsWith 2014-10-15 13:09:46 -07:00
Kevin Sawicki bb92b8697d Add isCorePath helper 2014-10-15 13:09:46 -07:00
Kevin Sawicki 4c17c9eae6 fs-plust -> fs-plus 2014-10-15 13:09:46 -07:00
Kevin Sawicki 289f17b119 Require coffee before module cache in dev mode 2014-10-15 13:09:46 -07:00
Kevin Sawicki dfd7bcae7f Use process.resourcesPath to find Atom shell root 2014-10-15 13:09:46 -07:00
Kevin Sawicki 0cfd37acd0 Special case reactionary in cache 2014-10-15 13:09:45 -07:00
Kevin Sawicki 105fc302ea Upgrade to text-buffer@3.2.9 2014-10-15 13:09:45 -07:00
Kevin Sawicki f4ddc05b9c Remove call to removed function 2014-10-15 13:09:45 -07:00
Kevin Sawicki 948f96dd6f Only load fs-plus when creating a cache 2014-10-15 13:09:45 -07:00
Kevin Sawicki db627f5cde 🐎 Join paths manually
path.join calls path.normalize and with the number of paths
being pushed through the cache it is faster to require them
manually since they are already normalized
2014-10-15 13:09:45 -07:00
Kevin Sawicki a6866656b7 Inline isAbsolute method
This allows fs-plus to be required through the cache
2014-10-15 13:09:45 -07:00
Kevin Sawicki 40c5289e2b Defer requires until the cache is populated 2014-10-15 13:09:45 -07:00
Kevin Sawicki 7dffc58c5b Use Module's filename instead of id 2014-10-15 13:09:45 -07:00
Kevin Sawicki 67d430d100 Add crash-reporter to cache 2014-10-15 13:09:45 -07:00
Kevin Sawicki d745b9ef5f Register module cache as early as possible 2014-10-15 13:09:45 -07:00
Kevin Sawicki b9d89cbf5d Inline valid extensions to check for 2014-10-15 13:09:45 -07:00
Kevin Sawicki 934c0720d8 Require ipc when needed 2014-10-15 13:09:44 -07:00
Kevin Sawicki 06ac206707 Add clipboard to cache 2014-10-15 13:09:44 -07:00
Kevin Sawicki 6e1bdbbed7 Verify that file path is absolute or relative 2014-10-15 13:09:44 -07:00
Kevin Sawicki 3e3de50eb3 💄 2014-10-15 13:09:44 -07:00
Kevin Sawicki d7a8dfb209 Add Atom Shell builtins to cache 2014-10-15 13:09:44 -07:00
Kevin Sawicki b0aea54544 Check cache before atom require short-circuit 2014-10-15 13:09:44 -07:00
Kevin Sawicki 41598af2b2 Add pre-resolved path to require('atom') 2014-10-15 13:09:44 -07:00
Kevin Sawicki f495db41e7 getCachedModulePath -> resolveModulePath 2014-10-15 13:09:44 -07:00
Kevin Sawicki 76187f176c Add core cache of pre-resolved paths
This reduces the number of calls to Module._findPath for
relative paths since they can be resolved without stating
2014-10-15 13:09:44 -07:00
Kevin Sawicki d7cb1550bf Remove semicolon 2014-10-15 13:09:44 -07:00
Kevin Sawicki 086be13ac4 Add Module._findPath debug timing and count 2014-10-15 13:09:44 -07:00
Kevin Sawicki f0cffcbd84 Add addPathToCache helper for apm to warm using 2014-10-15 13:09:44 -07:00
Kevin Sawicki d1f3d7d51e Mention plain return 2014-10-15 13:09:43 -07:00
Kevin Sawicki bdc0341eb3 undefined -> return 2014-10-15 13:09:43 -07:00
Kevin Sawicki 171411823f 🐎 Resolve uncached core dependencies
Trust modules under the resource path to be there without stat-ing and
verifying.
2014-10-15 13:09:43 -07:00
Kevin Sawicki 7926531330 Whitelist folders path from core
There are several folders bundled in the app that aren't needed in the
require cache list so it is simpler to opt-in the folders that should
be part of the cache.
2014-10-15 13:09:43 -07:00
Kevin Sawicki 440866d79e Remove invalid range logging 2014-10-15 13:09:43 -07:00
Kevin Sawicki d9c758b940 Remove no main module logging 2014-10-15 13:09:43 -07:00
Kevin Sawicki 827a8ba107 First dependency version added wins 2014-10-15 13:09:43 -07:00
Kevin Sawicki 65a1fafaf7 Ensure CoffeeScript is registered when caching
This ensures folders with .coffee files are includes in the
folders array
2014-10-15 13:09:43 -07:00
Kevin Sawicki 9bd6891ac2 Use realpath so path.relative works right 2014-10-15 13:09:43 -07:00
Kevin Sawicki 8a0755340f Remove extra ) 2014-10-15 13:09:43 -07:00
Kevin Sawicki bdebe575b7 💄 Use regular require paths 2014-10-15 13:09:43 -07:00
Kevin Sawicki 472a48092d Export cache for debugging purposes 2014-10-15 13:09:42 -07:00
Kevin Sawicki d877872c71 Use right require path 2014-10-15 13:09:42 -07:00
Kevin Sawicki 0a297d7642 Load module cache in index.js 2014-10-15 13:09:42 -07:00
Kevin Sawicki 87d2026e63 Generate module cache during build 2014-10-15 13:09:42 -07:00
Kevin Sawicki 20f6489232 Disable debug mode 2014-10-15 13:09:42 -07:00
Kevin Sawicki 2c737b8927 Move debug property into cache object 2014-10-15 13:09:42 -07:00
Kevin Sawicki 0df5045edb Move registered property into cache object 2014-10-15 13:09:42 -07:00
Kevin Sawicki b91c25186f Use hasOwnProperty 2014-10-15 13:09:42 -07:00
Kevin Sawicki 7b8a293f30 Inline path to listSync call 2014-10-15 13:09:42 -07:00
Kevin Sawicki 26df31aa1f 💄 Group exported methods 2014-10-15 13:09:42 -07:00
Kevin Sawicki 36ff22e30a generateDependencies -> create 2014-10-15 13:09:42 -07:00
Kevin Sawicki 93c5b4be7b Generate cache for bundled packages 2014-10-15 13:09:42 -07:00
Kevin Sawicki 495fa43753 Allow passing in metadata to ModuleCache.add 2014-10-15 13:09:41 -07:00
Kevin Sawicki 2954aacb1c Ignore invalid ranges
They cannot be cache since multiple commits/branches may
map to the same version number which would lead to
unpredictable results.
2014-10-15 13:09:41 -07:00
Kevin Sawicki 1bf8f516c3 Cache parsed ranges 2014-10-15 13:09:41 -07:00
Kevin Sawicki e0a84232c3 💄 2014-10-15 13:09:41 -07:00
Kevin Sawicki 8c204bb60e Restore cache 2014-10-15 13:09:41 -07:00
Kevin Sawicki 245c77869f Add require time and load count tracking 2014-10-15 13:09:41 -07:00
Kevin Sawicki 508a30efb1 Return when package.json can't be required 2014-10-15 13:09:41 -07:00
Kevin Sawicki 5ad54bbe92 Wire up cache to Module._resolveFilename 2014-10-15 13:09:41 -07:00
Kevin Sawicki 4da6513fb5 Add initial cache of resource path module 2014-10-15 13:09:41 -07:00
Kevin Sawicki 1154490a97 Store main path of module
This is the key in Module._cache
2014-10-15 13:09:41 -07:00
Kevin Sawicki 0e7e24ca6b relative -> relativePath 2014-10-15 13:09:40 -07:00
Kevin Sawicki 944ac14be7 Make dependencies an array of objects 2014-10-15 13:09:40 -07:00
Kevin Sawicki 7aa28920cf Use fs.listSync 2014-10-15 13:09:40 -07:00
Kevin Sawicki 6ce6553456 Add initial task to generate dependencies 2014-10-15 13:09:40 -07:00
Kevin Sawicki b4470a14cb Explicitly register cache 2014-10-15 13:09:40 -07:00
Kevin Sawicki 5b629e6b29 💄 2014-10-15 13:09:40 -07:00
Kevin Sawicki 7304b97547 Parse resource path for relativizing cache paths 2014-10-15 13:09:40 -07:00
Kevin Sawicki f523c5eb73 Do hasOwnProperty check first 2014-10-15 13:09:40 -07:00
Kevin Sawicki 5981cfb8c9 Ignore native modules since they are already cached 2014-10-15 13:09:40 -07:00
Kevin Sawicki d1e966349f Add initial cache lookup method 2014-10-15 13:09:40 -07:00
Kevin Sawicki dc19fa4baa 📝 Add a couple notes 2014-10-15 13:09:40 -07:00
Kevin Sawicki 84e90d140f Wire initial module cache 2014-10-15 13:09:40 -07:00
Kevin Sawicki ea557ab109 Prepare 0.138 2014-10-15 13:07:58 -07:00
Kevin Sawicki bfbc0b1c46 Upgrade to settings-view@0.152 2014-10-15 11:28:37 -07:00
Paul Betts d3b9a14f98 Merge pull request #3836 from atom/dont-fail-if-no-deltas
Don't fail create-installer if ATOM_ACCESS_TOKEN isn't set
2014-10-15 11:08:00 -07:00
Paul Betts 85ca8350e5 Twerk error message 2014-10-15 11:04:32 -07:00
Kevin Sawicki ad6fc94a5c ⬆️ Upgrade to grammar-selector@0.35 2014-10-15 09:18:54 -07:00
Kevin Sawicki 07a1b28e67 Upgrade to incompatible-packages@0.10 2014-10-15 09:12:10 -07:00
Kevin Sawicki 966adbdf20 Upgrade to tree-view@0.131 2014-10-15 09:01:45 -07:00
Kevin Sawicki bbfac9430e Use -> instead of => 2014-10-14 18:06:40 -07:00
Kevin Sawicki 7bc3fffa1a Merge pull request #3822 from suda/master
Replaced xcopy with robocopy
2014-10-14 17:32:42 -07:00
Kevin Sawicki 7b9aa23129 📝 deps -> dependencies 2014-10-14 17:28:19 -07:00
Kevin Sawicki 9ef4b84afb 📝 Add missing : 2014-10-14 17:27:57 -07:00
Kevin Sawicki 01625bc892 Merge pull request #3828 from zigal/patch-1
📝 adding an emoji for upgrading deps
2014-10-14 17:27:16 -07:00
Paul Betts feb97eb7b2 Don't fail create-installer if ATOM_ACCESS_TOKEN isn't set
This lets users create one-off installers locally without having to download
every other release to create deltas.
2014-10-14 16:17:32 -07:00
zigal a2781b2a84 📝 adding an emoji for upgrading deps 2014-10-14 20:14:59 +02:00
Nathan Sobo c9869580d4 Use more specific selectors for Workspace::horizontal/::vertical outlets
Fixes #3793
2014-10-14 12:03:42 -06:00
Cheng Zhao f4b67190bd Merge pull request #3825 from atom/atom-shell-v0.18.0
Upgrade to Chrome 38.0.2125.102
2014-10-14 22:28:12 +08:00
Cheng Zhao fcf230ccb5 --harmony_collections is no more needed 2014-10-14 22:01:32 +08:00
Cheng Zhao e7be5adaf1 Upgrade to apm@0.102.0 2014-10-14 21:42:30 +08:00
Cheng Zhao 1377ec5583 Upgrade to atom-shell@0.18.0 2014-10-14 21:42:12 +08:00
Wojtek Siudzinski f382edd431 Replaced xcopy with robocopy 2014-10-14 08:51:55 +02:00
Kevin Sawicki 4821c1aa5a Upgrade to language-xml@0.24 2014-10-13 23:07:57 -04:00
Kevin Sawicki 8f97e5f81b Upgrade to language-xml@0.23 2014-10-13 23:03:31 -04:00
Ben Ogle c16d84527d fix specs related to title 2014-10-13 17:48:06 -07:00
Ben Ogle 5c8e20a01d 💄 2014-10-13 17:30:40 -07:00
Ben Ogle ae0b3b47e3 Merge pull request #3814 from Parasithe/master
Add Atom in the title bar
2014-10-13 17:27:16 -07:00
Ben Ogle d73c34af25 Merge pull request #3817 from atom/bo-rename-scopes
Rename scopes -> scopeDescriptor
2014-10-13 17:25:49 -07:00
Ben Ogle 3ba44b955d Deprecate Token::scopes 2014-10-13 17:12:35 -07:00
Ben Ogle b1e9e6b312 Deprecate the use of scopes. 2014-10-13 16:52:49 -07:00
Ben Ogle 22e43600d2 Fix Token::isEqual() to accept scopes for now. 2014-10-13 16:51:10 -07:00
Ben Ogle b9f13d05a8 📝 Update docs for Config::get 2014-10-13 16:50:42 -07:00
Ben Ogle b2cc190a3b Actually get the cursor 2014-10-13 16:35:50 -07:00
Ben Ogle 274bbeec27 Fix deprecate reference 2014-10-13 16:32:17 -07:00
Ben Ogle c0091b4601 scopes -> scopeDescriptor
!!!
2014-10-13 16:30:41 -07:00
Ben Ogle 8cf36af1dc scopesForPosition -> scopeDescriptorForPosition 2014-10-13 16:18:36 -07:00
Ben Ogle 80f52aa3ef Reorganize scopes section 2014-10-13 16:17:01 -07:00
Ben Ogle 56c6c3516a scopesForBufferPosition -> scopeDescriptorForBufferPosition 2014-10-13 16:16:44 -07:00
Ben Ogle f7ab04404c Remove scopesAtCursor from TextEditor class 2014-10-13 16:15:58 -07:00
Ben Ogle b0de88de74 grammarScopeDescriptor -> rootScopeDescriptor 2014-10-13 16:15:05 -07:00
Ben Ogle 6ab002d4be Cursor::getScopes -> Cursor::getScopeDescriptor 2014-10-13 16:14:31 -07:00
Ben Ogle 0588e14850 Only notify when changed key path is really sub path of observed path
Closes #3775
2014-10-13 14:25:55 -07:00
Parasithe 82bf5da9aa Add Atom in the title bar 2014-10-13 17:06:05 -04:00
Paul Betts 9481260f6f Merge pull request #3738 from atom/delta-releases
Squirrel for Windows: Delta Packages
2014-10-13 14:03:22 -07:00
Ben Ogle b8fdaa2dc5 Upgrade markdown-preview 2014-10-13 13:33:30 -07:00
Ben Ogle b57f5a7afa Merge pull request #3812 from atom/bo-speedup-scoped-config
Speedup scoped config
2014-10-13 13:26:45 -07:00
Kevin Sawicki a2a4379974 Merge pull request #3803 from matttbe/master
🐧 .desktop file without capital letter
2014-10-13 15:57:12 -04:00
Ben Ogle 7f1947f7b2 💄 2014-10-13 12:47:19 -07:00
Ben Ogle 55c9b42a74 Clarity 2014-10-13 12:45:43 -07:00
Ben Ogle 9a41b5050e Cache the editor.tabLength config value 2014-10-13 12:34:06 -07:00
Ben Ogle 8ed751f5da Cache scoped settings in the display buffer 2014-10-13 12:22:25 -07:00
Kevin Sawicki 3abe6eb098 Upgrade to language-css@0.21 2014-10-13 11:21:00 -04:00
Kevin Sawicki 4aa7a1ebd8 Upgrade to tree-view@0.130 2014-10-13 11:04:25 -04:00
Kevin Sawicki 4997be54df Upgrade to welcome@0.19 2014-10-13 10:45:11 -04:00
Kevin Sawicki 93902b54e4 Only parse package.json when it is a file
Closes #3784
2014-10-13 10:42:47 -04:00
Kevin Sawicki 1d89150242 Upgrade to settings-view@0.151 2014-10-13 10:32:50 -04:00
Kevin Sawicki ec5819a684 Upgrade to language-python@0.20 2014-10-13 10:12:38 -04:00
Matthieu Baerts d6f43f1858 🐧 .desktop file without capital letter
The .desktop file of Atom was named Atom.desktop but it should be
renamed to atom.desktop because a .desktop should not contain capital
letters as any other .desktop files in /usr/share/applications.

Note that without that, it can be not easy to link the window with the
.desktop file and then a dock/panel could not link a launcher with its
window.
2014-10-12 18:47:06 +02:00
Ardeshir Javaherchi 503393122f 📝 Add Red Hat Linux to README file 2014-10-11 17:07:05 -07:00
Ardeshir Javaherchi b5c6d76999 Add grunt mkrpm task to create rpm package 2014-10-11 17:04:14 -07:00
Nathan Sobo b149d47b09 Dispose of subscriptions on SpacePen views in callRemoveHooks
Fixes atom/bracket-matcher#75
2014-10-11 07:25:28 -07:00
Ben Ogle f81f24fea6 Upgrade scoped property settings for mo beta
🐎, less temp objects, more straight forward
2014-10-10 14:16:31 -07:00
Ben Ogle 201345ec5d Allow for optimization of config::get 2014-10-10 12:21:41 -07:00
Ben Ogle 95ee29ea39 Upgrade to scoped-property-store@0.13.0 for 🐎 2014-10-10 12:07:37 -07:00
Kevin Sawicki 4c6803cf6a Merge pull request #3773 from mkoniecz/master
fakeroot is also necessary
2014-10-09 08:56:10 -07:00
Nathan Sobo d3512514d8 Merge pull request #3746 from atom/ns-custom-tag-names
Use custom tag names in core
2014-10-09 07:58:54 -07:00
Nathan Sobo 014e2e6fce Make atom-workspace tag have ‘display: block’ style 2014-10-09 07:39:14 -07:00
Nathan Sobo 1eb3d8bf99 Use ‘atom-text-editor’ custom tag name for TextEditorElement 2014-10-09 07:39:14 -07:00
Nathan Sobo 8e06e88efa Use ‘atom-workspace-axis’ custom tag name instead of ‘div’ 2014-10-09 07:39:14 -07:00
Nathan Sobo 8941b97ed2 Use ‘atom-workspace’ custom tag name for WorkspaceElement 2014-10-09 07:39:14 -07:00
Nathan Sobo eedf4894ae Use ‘atom-pane-container’ custom tag name for PaneContainerElement 2014-10-09 07:39:14 -07:00
Nathan Sobo ddf36a013c Use ‘atom-pane-axis’ custom tag name for PaneAxisElement 2014-10-09 07:39:14 -07:00
Nathan Sobo ee9284e228 Use ‘atom-pane’ custom tag name for PaneElement 2014-10-09 07:39:13 -07:00
Mateusz Konieczny e6e039293a fakeroot is also necessary 2014-10-09 13:11:06 +02:00
Max Hodges 6c56f2f985 Update keymap.cson 2014-10-09 16:01:41 +09:00
Max Hodges a4b959f2b8 Update keymap.cson 2014-10-09 13:26:14 +09:00
Max Hodges c59b7f6ead new users should be warned about cson
improper trailing and leading spaces can cause your bindings to fail.Since cson has very little adoption relative to json, I think it's important to warn new users that they need to understand CoffeeScript notation or else a single space could break their file. I spent one full hour today trying to get an auto-indent mapping to work. The solution involved adding one leading space!
2014-10-09 13:15:55 +09:00
Ben Ogle 17bfc29c5b Merge pull request #3718 from atom/bo-scoped-user-config
Add scoped settings to user config
2014-10-08 16:37:20 -07:00
Ben Ogle c154b8f4ec 💄 edit spec descriptions 2014-10-08 16:01:42 -07:00
Ben Ogle a28fed8bae 📝 Expose TextEditor::observeGrammar 2014-10-08 16:01:42 -07:00
Ben Ogle c2081fa569 💄 test 2014-10-08 16:01:42 -07:00
Ben Ogle 841412bd01 Fix spec 2014-10-08 16:01:42 -07:00
Ben Ogle f2d480fc72 getGrammarScopeDescriptor -> getRootScopeDescriptor 2014-10-08 16:01:42 -07:00
Ben Ogle d7cd0de0f8 Upgrade scoped-property-store 2014-10-08 16:01:42 -07:00
Ben Ogle 8910dd1a11 Update to not new format from propertiesForSource 2014-10-08 16:01:42 -07:00
Ben Ogle c315631efd Remove scopeDescriptor from getTabLength 2014-10-08 16:01:42 -07:00
Ben Ogle 26524e87b0 💄 tests 2014-10-08 16:01:42 -07:00
Ben Ogle 2a73d7052d 💄 Clean up spec names 2014-10-08 16:01:42 -07:00
Ben Ogle a3bbbc19b5 Read and write scoped settings from the user’s config 2014-10-08 16:01:42 -07:00
Ben Ogle b44a5dd1f0 Use jasmine json 2014-10-08 16:01:41 -07:00
Ben Ogle f662b3d745 💄 Normalize the names of related subscription things 2014-10-08 16:01:41 -07:00
Ben Ogle d3b00f67f2 Fix spec 2014-10-08 16:01:41 -07:00
Ben Ogle 2605044f19 Scope editor.showIndentGuide 2014-10-08 16:01:41 -07:00
Ben Ogle fbe4cf5677 Invisibles will be set in a call to updateInvisibles() 2014-10-08 16:01:41 -07:00
Ben Ogle ca4c40936a Scope editor.autoIndent 2014-10-08 16:01:41 -07:00
Ben Ogle 6958e0af10 Scope editor.normalizeIndentOnPaste 2014-10-08 16:01:41 -07:00
Ben Ogle 237c668ef0 Scope editor.invisibles and editor.showInvisibles 2014-10-08 16:01:41 -07:00
Ben Ogle c1ff53b02c getCurrentScopeDescriptor -> getGrammarScopeDescriptor 2014-10-08 16:01:41 -07:00
Ben Ogle 938f216cab Scope softWrap, softWrapAtPreferredLineLength, preferredLineLength
`editor.*` config settings
2014-10-08 16:01:41 -07:00
Ben Ogle fbcaabacab Fix weird spec 2014-10-08 16:01:41 -07:00
Ben Ogle 857fd5eaf4 Retokenize when setTabLength() was called. 2014-10-08 16:01:40 -07:00
Ben Ogle 8cd217e50a Handle changes to the tabLength setting 2014-10-08 16:01:40 -07:00
Ben Ogle 339cb02269 Scope editor.tabLength 2014-10-08 16:01:40 -07:00
Ben Ogle 416898e278 Scope usage of editor.nonWordCharacters 2014-10-08 16:01:40 -07:00
Nathan Sobo 6b9345a97d Avoid double clone of menu item now that helper does it 2014-10-08 15:56:13 -07:00
Nathan Sobo d1b2147921 Store specificity based on the cloned item instead of the original 2014-10-08 15:55:41 -07:00
Nathan Sobo 9914c49773 Clone menu items before merging them in in menu-helpers 2014-10-08 15:27:09 -07:00
Nathan Sobo 079ea4862a Merge pull request #3735 from atom/ns-text-editor-custom-element
Convert text editor to custom element
2014-10-08 14:12:35 -07:00
Ben Ogle 9ff435a203 Upgrade find and replace 2014-10-08 13:50:39 -07:00
Ben Ogle 0067e44681 Do not access space-pen view when no elements 2014-10-08 13:48:50 -07:00
Ben Ogle 34a8c6f3bc Use disposables for keymap and menu deactivation 2014-10-08 13:48:50 -07:00
Ben Ogle 9bf7540657 Call dispose not off 2014-10-08 13:48:50 -07:00
Nathan Sobo bc790ee838 Only try selector based listeners if target has .webkitMatchesSelector 2014-10-08 13:21:15 -07:00
Kevin Sawicki 810c851ab3 Upgrade to tree-view@0.129 2014-10-08 13:12:12 -07:00
Kevin Sawicki d015343616 Upgrade to language-css@0.20 2014-10-08 13:11:26 -07:00
Nathan Sobo fab0ac814d Fix checkout-head-revision command 2014-10-08 12:13:13 -07:00
Nathan Sobo eaa3a27328 Add text-editor-element-spec and fix handling of focus and attributes 2014-10-08 12:13:13 -07:00
Nathan Sobo 1e4f4e0882 Move editor commands to global command registry 2014-10-08 12:13:13 -07:00
Nathan Sobo 2d7aa2efda Forward .abortKeyBinding() on CommandRegistry events to original event 2014-10-08 12:13:13 -07:00
Nathan Sobo c63d22b4d1 Update wrap-guide to fix specs 2014-10-08 12:13:13 -07:00
Nathan Sobo 1ca479877e Null guard ::element in TextEditorView::component synthetic property 2014-10-08 12:13:13 -07:00
Nathan Sobo 49dd9b0c07 Update settings-view to fix specs 2014-10-08 12:13:13 -07:00
Nathan Sobo 49e22a41b2 Assign attributes passed to TextEditorView constructor 2014-10-08 12:13:13 -07:00
Nathan Sobo 4eff0f82d8 Destroy model if TextEditorView is explicitly removed for compatibility 2014-10-08 12:13:13 -07:00
Nathan Sobo 003b67ee19 Add TextEditorElement and make TextEditorView a wrapper around it
This is the next step on converting all internal views to custom
elements instead of using SpacePen. The TextEditorElement instances
are associated with ::__spacePenView fields that are used for supporting
legacy access paths via atom.workspaceView.
2014-10-08 12:13:13 -07:00
Nathan Sobo 541c140a19 Merge pull request #3734 from atom/ns-commands-backward-compatibility
Make command registry backward compatible with jQuery::on and ::trigger
2014-10-08 12:10:51 -07:00
Nathan Sobo 19c0540eec Add workspace commands via command registry again
Now that legacy jQuery command listeners are properly integrated with
the command registry, these commands can be moved back.
2014-10-08 11:57:46 -07:00
Nathan Sobo c39f2019db Remove unused __handledByCommandRegistry property 2014-10-08 11:56:50 -07:00
Nathan Sobo f869edee2f Forward preventDefault to original event 2014-10-08 11:56:50 -07:00
Nathan Sobo bb6294cb7c Upgrade keymap to fix simulated command dispatch for detached nodes 2014-10-08 11:56:50 -07:00
Nathan Sobo 5d538fb1b0 💄 spec 2014-10-08 11:56:50 -07:00
Nathan Sobo b78ac53224 Remove logging 2014-10-08 11:56:50 -07:00
Nathan Sobo fb5d826d84 Force native event handler to be registered for activation commands
We use onWillDispatch internally to manage activation commands,
activating packages *before* the activation command starts dispatching.
This means we need to explicitly tell the command registry to subscribe
to the command in question.
2014-10-08 11:56:50 -07:00
Nathan Sobo a75faec64e 💄 2014-10-08 11:56:50 -07:00
Nathan Sobo cdb4ed1327 Integrate jQuery::on and ::trigger with command registry dispatch 2014-10-08 11:56:50 -07:00
Nathan Sobo 0d55a377fb Support inline listeners
This extends the command registry to support listeners registered on
individual elements in addition to selectors. The analogy is inline
styles vs selector-based styles. I’m hoping this will be the foundation
of integrating cleanly with legacy commands registered via our
jQuery::command extension.
2014-10-08 11:56:50 -07:00
Nathan Sobo 2084c45404 💄 spec description 2014-10-08 11:56:50 -07:00
Nathan Sobo 550f0d2a72 Merge pull request #3721 from atom/ns-pure-custom-element-pane-items
Allow pure custom element pane item views
2014-10-08 11:35:36 -07:00
Nathan Sobo ec6614c919 Delegate pane focus methods from workspace to pane container
Fixes #3754
2014-10-08 10:43:40 -07:00
Kevin Sawicki 8db2c4d70a Merge pull request #3750 from mlloreda/patch-1
💄 Remove unnecessary conditional
2014-10-08 08:21:09 -07:00
Miguel Lloreda bcbf01c852 💄 Remove unnecessary conditional
`mkdir -p` is an idempotent operation.
2014-10-07 21:39:36 -04:00
Kevin Sawicki 058ff116b6 Upgrade to language-css@0.19 2014-10-07 14:31:12 -07:00
Kevin Sawicki 33dc3fd684 Upgrade to language-todo@0.13 2014-10-07 14:30:00 -07:00
Nathan Sobo 481c99d852 Use native DOM APIs to remove pane item views 2014-10-07 13:01:56 -06:00
Nathan Sobo 2e6b1cf902 Attach, show and hide pane item views with native DOM APIs
We continue to invoke SpacePen attach hooks on any shim wrappers
for backward compatibility, but SpacePen wrappers are no longer required
for attoch/hide/show as they were previously. Next: removal.
2014-10-07 12:59:12 -06:00
Kevin Sawicki c4e54df100 Prepare 0.137 2014-10-07 09:00:03 -07:00
Paul Betts 20b94c8a4c We've got a valid ReleasesDir, don't clear it 2014-10-06 18:21:23 -07:00
Paul Betts c9ee9b46ed Kill trailing whitespace 2014-10-06 18:12:51 -07:00
Paul Betts 74d1afa8ef Download previous releases so that Squirrel will build updates for them 2014-10-06 18:06:04 -07:00
Russell Lescai 38a6f52ef7 Rearranged onMouseWheel function for tidier merge. 2014-10-07 11:16:25 +10:30
Paul Betts 182f1324a4 Version bump Squirrel for Windows to 0.5.3 2014-10-06 17:35:38 -07:00
Russell Lescai 33e2829697 Adjust font size using Control key with Mouse Scroll Wheel. 2014-10-07 10:18:12 +10:30
Kevin Sawicki 0b2599565e Upgrade to apm 0.101 2014-10-06 13:29:39 -07:00
Nathan Sobo 34bd103c3d Move remaining workspace commands back to $::command temporarily 2014-10-06 13:19:47 -06:00
Nathan Sobo b00441bee7 Register workspace commands via $::command until compatibility is better
This is a temporary measure.

Currently, commands registered via atom.commands.add don’t mesh properly
with the dispatch of commands registered via jQuery. Didn’t think this
was a big deal until I realized that it broke the ability to preempt
commands on ancestor nodes by calling stopPropagation, which might break
packages.
2014-10-06 13:16:36 -06:00
Kevin Sawicki e33e5df467 Upgrade to language-gfm@0.51 2014-10-06 11:16:55 -07:00
Ben Ogle 212fbd915d Add tabLength 3
Closes #3724
2014-10-06 10:46:31 -07:00
Kevin Sawicki 8bd3e848e0 Upgrade to language-ruby@0.39 2014-10-06 10:05:10 -07:00
Kevin Sawicki 400c8f3dcd Upgrade to language-yaml@0.18 2014-10-06 09:24:12 -07:00
Kevin Sawicki fff752d944 Upgrade to language-css@0.18 2014-10-06 08:51:06 -07:00
Kevin Sawicki f843d07403 Add missing CommandInstaller require
Closes #3729
2014-10-06 08:47:44 -07:00
Nathan Sobo d7efa9bb37 Add PaneElement::attached to prevent shape change 2014-10-03 17:51:44 -06:00
Kevin Sawicki d12a2cf284 Unfocus spec 2014-10-03 15:23:54 -07:00
Kevin Sawicki a807619906 Only call show on active item when attached
Closes atom/settings-view#258
2014-10-03 15:23:21 -07:00
Nathan Sobo e3245ec4b8 Remove logging from spec 2014-10-03 15:56:12 -06:00
Kevin Sawicki 4231d69421 Upgrade to apm 0.100 2014-10-03 14:06:12 -07:00
Ben Ogle 64cc7f98ea Merge pull request #3697 from atom/bo-config-scoped-properties
Add scoped settings to config
2014-10-03 14:01:03 -07:00
Ben Ogle 062fa29895 addRawScopedValue -> setRawScopedValue 2014-10-03 11:57:50 -07:00
Ben Ogle 4e3c8406ee Clean up docs 2014-10-03 11:57:35 -07:00
Ben Ogle 47d5b46a1d Fix warnings from schema incorrectness 2014-10-03 11:42:45 -07:00
Ben Ogle a711e908d5 💄 2014-10-03 10:46:57 -07:00
Ben Ogle 27da0669f3 Moar 📝 2014-10-03 10:46:57 -07:00
Ben Ogle 16fd53c123 Add schemas for scoped configs 2014-10-03 10:46:57 -07:00
Ben Ogle 2475e1a9a6 📝 Update docs for scoped settings 2014-10-03 10:46:57 -07:00
Ben Ogle f724c7fca8 Implement observing on scoped properties 2014-10-03 10:46:57 -07:00
Ben Ogle f8a3ae6104 Pull observing out into special methods for global config 2014-10-03 10:46:57 -07:00
Ben Ogle 899929a1ce addScopedDefaults -> addScopedSettings 2014-10-03 10:46:57 -07:00
Ben Ogle e5d67bb2ff Can remove the clearing of scoped properties
Config is being created on each spec run!
2014-10-03 10:46:57 -07:00
Ben Ogle 3732bdf1e9 Ugh, add settingsForScopeDescriptor back
It’s used by language mode and autocomplete for different things
2014-10-03 10:46:57 -07:00
Ben Ogle aedf02a3e3 Remove +default junk 2014-10-03 10:46:57 -07:00
Ben Ogle d47dbede29 Fix specs 2014-10-03 10:46:57 -07:00
Ben Ogle b1f8c6a6e8 Remove special method for language mode 2014-10-03 10:46:57 -07:00
Ben Ogle a8fad6a0fb Use disposables for removing properties 2014-10-03 10:46:13 -07:00
Ben Ogle e2ac19c17f Use config rather than syntax for scoped properties 2014-10-03 10:46:13 -07:00
Ben Ogle 82990cfc77 rename method 2014-10-03 10:46:13 -07:00
Ben Ogle d72b179b3b Use config in spec helper 2014-10-03 10:46:13 -07:00
Ben Ogle 9a957fe0a4 Fix specs for settings view. 2014-10-03 10:46:13 -07:00
Ben Ogle 21feab322f Add deprecations to the syntax scoped property methods 2014-10-03 10:46:13 -07:00
Ben Ogle dd05c6cec1 Syntax calls into atom.config for scoped properties 2014-10-03 10:46:13 -07:00
Ben Ogle f61a7d0c62 Remove unused method 2014-10-03 10:46:13 -07:00
Ben Ogle 7a5054027e Shift the args before coercing the value 2014-10-03 10:46:13 -07:00
Ben Ogle 778d9fafc5 fix value and default value object checks 2014-10-03 10:46:13 -07:00
Ben Ogle 38e889b7d8 Reorganize private methods into section 2014-10-03 10:46:13 -07:00
Ben Ogle 356f4bec7c Basic scoped settings in Config works 2014-10-03 10:46:13 -07:00
Ben Ogle 8533286114 Move internal things into an internal section 2014-10-03 10:46:13 -07:00
Kevin Sawicki 98d31a1d30 💄 Remove some lint 2014-10-02 17:54:23 -07:00
Kevin Sawicki 59aa3a446c Upgrade to apm 0.99 2014-10-02 16:57:16 -07:00
Kevin Sawicki 679031ce83 Upgrade to text-buffer@3.2.8 2014-10-02 16:50:53 -07:00
Kevin Sawicki 3860091c62 Upgrade to scoped-property-store@0.11 2014-10-02 16:46:25 -07:00
Kevin Sawicki 06af3f38c0 Upgrade to tree-view@0.128 2014-10-02 16:37:57 -07:00
Kevin Sawicki da6f664903 Upgrade to snippets@0.55 2014-10-02 16:08:54 -07:00
Nathan Sobo 4c124b8174 Merge pull request #3633 from atom/ns-workspace-custom-elements
Use custom elements for workspace views
2014-10-02 16:00:31 -06:00
Kevin Sawicki 4a818d76d6 Upgrade to language-go@0.18 2014-10-02 14:15:02 -07:00
Kevin Sawicki 811758aec7 Prepare 0.136 2014-10-02 10:56:20 -07:00
Kevin Sawicki a1dc7daf48 unless -> if 2014-10-02 10:04:26 -07:00
Kevin Sawicki fd66348658 Use isFinite instead of isNaN 2014-10-02 10:02:57 -07:00
Kevin Sawicki 0de17d1b84 Call process.kill with a number
This appears to have changed in node 0.11.14 to be stricter

Closes #3708
2014-10-02 09:56:17 -07:00
Nathan Sobo 6ce5356505 Fix handling of submenus in conversion of legacy context menu format 2014-10-02 10:47:03 -06:00
Nathan Sobo eff70b07d9 Update docs for context menus 2014-10-02 10:36:29 -06:00
Kevin Sawicki 368c06a95c Upgrade to git-utils@2.1.5 2014-10-02 09:33:46 -07:00
Kevin Sawicki 913e4e4248 Add missing Grim prefix to deprecate calls
Closes #3706
2014-10-02 08:47:23 -07:00
Nathan Sobo 5cb31c874f Properly emit item argument in pane:before-item-destroyed legacy event 2014-10-01 17:58:09 -06:00
Nathan Sobo b24e1fa405 Merge branch 'master' into ns-workspace-custom-elements 2014-10-01 17:15:09 -06:00
Nathan Sobo e44f4fbc84 Fix renaming error throwing exception in checkout-head-revision command 2014-10-01 17:04:34 -06:00
Ben Ogle 28ee1f3598 Fix spec 2014-10-01 14:53:31 -07:00
Ben Ogle 72f40ae647 Fix 📝 2014-10-01 14:25:07 -07:00
Ben Ogle 7f5428e2a4 Update config schema to use some new features. 2014-10-01 12:21:33 -07:00
Nathan Sobo f004f8c45d Merge branch 'master' into ns-workspace-custom-elements
Conflicts:
	spec/pane-view-spec.coffee
	spec/workspace-view-spec.coffee
	src/workspace-view.coffee
	src/workspace.coffee
2014-10-01 11:49:23 -06:00
Nathan Sobo 4c94233895 Merge pull request #3691 from atom/ns-pluralize-project-api
Pluralize Project API
2014-10-01 11:14:30 -06:00
Kevin Sawicki 05ccf8adc3 Prepare 0.135 2014-10-01 10:11:01 -07:00
Nathan Sobo 99b8e159bd Add Project::onDidChangePaths event 2014-10-01 10:48:39 -06:00
Nathan Sobo 33c1ce863e Pluralize Project API
This changes all APIs concerning paths and repositories on the project
to be plural, preparing us to switch to multi-folder projects. It
doesn’t make any changes to actually support multiple folders. Instead
we just wrap the previous return values in singleton arrays.

* constructor ‘path’ params -> ‘paths’
* getRootDirectory -> getDirectories
* getPath -> getPaths
* setPath -> setPaths
* getRepo -> getRepositories
2014-10-01 10:48:39 -06:00
Nathan Sobo 19ff2bd986 Set the project path is the represented file path if undefined for item
This prevents exceptions on the browser process from passing a null
argument over IPC.
2014-09-29 11:21:33 -06:00
Nathan Sobo be7d093a4a Merge remote-tracking branch 'origin/master' into ns-workspace-custom-elements
Conflicts:
	package.json
2014-09-29 11:13:45 -06:00
Nathan Sobo 0ebedeec3a Merge remote-tracking branch 'origin/master' into ns-workspace-custom-elements
Conflicts:
	package.json
	src/workspace.coffee
2014-09-26 14:49:28 -06:00
Nathan Sobo aa1eb94fa7 Ignore redundant calls to $::attachToDom 2014-09-25 22:17:26 -06:00
Nathan Sobo 8723e69f1c Upgrade status-bar to fix specs 2014-09-25 21:58:44 -06:00
Nathan Sobo b1c5442f93 Upgrade command-palette to fix specs 2014-09-25 21:28:52 -06:00
Nathan Sobo 756a389ccf Don't require Workspace in WorkspaceView 2014-09-25 21:28:09 -06:00
Nathan Sobo 5a72d12026 Don’t use jQuery to attach window listeners in spec-helper
This prevents the command palette spec from failing because it’s
explicitly asserting that no listener registered on the window without
a description should show up in the palette, but core:close is also
registered on the workspace.
2014-09-25 20:57:09 -06:00
Nathan Sobo 06e0919597 Revert "Make $::view return __spacePenView from the first element if present"
This reverts commit edaf1e2ced.
2014-09-25 20:45:18 -06:00
Nathan Sobo 0afe2a55e9 Handle direct construction of WorkspaceView in a better way 2014-09-25 20:40:11 -06:00
Nathan Sobo 3442157e16 Fix command-installer-spec 2014-09-25 20:39:04 -06:00
Nathan Sobo 039d87caa0 Allow WorkspaceView to be instantiated directly for compatibility 2014-09-25 20:17:04 -06:00
Nathan Sobo edaf1e2ced Make $::view return __spacePenView from the first element if present 2014-09-25 20:16:40 -06:00
Nathan Sobo 4b746deb73 Move shell command installation entirely into CommandInstaller 2014-09-25 13:11:15 -06:00
Nathan Sobo 442223f97b 💄 spec language 2014-09-25 12:44:53 -06:00
Nathan Sobo 4207752a08 Rename deprecatedViewEvents to deprecateViewEvents 2014-09-25 12:42:12 -06:00
Nathan Sobo a5781d65c3 Remove methods carried over from old view 2014-09-25 12:36:44 -06:00
Nathan Sobo 9d2bb71109 More cleanup 2014-09-25 12:35:08 -06:00
Nathan Sobo eaa90e6158 Clean up debugging 2014-09-25 12:33:05 -06:00
Nathan Sobo 187e300167 Apply workaround for clearing of focus upon loading of window
After the first window focus event, the focus is getting cleared back
to document.body regardless of the prior active element. Refocusing
workspace on a delay after the first window focus event works around
the problem.
2014-09-25 11:56:29 -06:00
Nathan Sobo 670f3e4946 Add WorkspaceElement 2014-09-25 11:41:09 -06:00
Nathan Sobo ae488fc7fe Update document edited status in workspace model
This also fixes a previous oversight where the status wasn’t updated
when switching between pane items with different modified status.
2014-09-24 17:00:25 -06:00
Nathan Sobo 28deb9dec5 Maintain document.title in the workspace model, not the view 2014-09-24 16:26:54 -06:00
Nathan Sobo 186335d619 Mock out document.title with Object.defineProperty
Previously the WorkspaceView::setTitle was mocked in specs to prevent
the title from changing. But I would like to move the title update logic
without breaking assertions, so now we can assert directly on
document.title.
2014-09-24 15:56:50 -06:00
Nathan Sobo 1c58438124 Move PaneContainerView::confirmClose to the model layer 2014-09-24 15:46:01 -06:00
Nathan Sobo 3e0477ffcb Move shell command installation to workspace model 2014-09-24 15:28:35 -06:00
Nathan Sobo 368ef59b85 Remove stray log 2014-09-24 15:28:34 -06:00
Nathan Sobo 465d2afd95 Remove the old root view properly 2014-09-24 15:28:34 -06:00
Nathan Sobo 32f0eb4f76 Don’t emit repeated attached events for the same PaneView 2014-09-24 15:28:34 -06:00
Nathan Sobo 60a551b308 Only dispose PaneElement subscriptions when pane is destroyed
Not when the element is detached, because it might be reattached.
2014-09-24 15:28:34 -06:00
Nathan Sobo f76f7e17d3 Upgrade space-pen for simulated dom attachment bug fix 2014-09-24 15:28:34 -06:00
Nathan Sobo da87f321e8 Add PaneAxisElement 2014-09-24 15:28:34 -06:00
Nathan Sobo 11ede2d436 Upgrade autosave to fix specs 2014-09-24 15:28:34 -06:00
Nathan Sobo 2cc6c9e4c0 💄 2014-09-24 15:28:34 -06:00
Nathan Sobo 887a7bcaf4 Restore $.fn.element property
We define element in certain space-pen views, but this makes it
available for all jQuery objects. Can’t remove it from the prototype.
2014-09-24 15:28:34 -06:00
Nathan Sobo df37d77895 Remove Pane::getViewClass as we now use a view provider 2014-09-24 15:28:34 -06:00
Nathan Sobo cf8dc29cc5 Use Pane::onDidAddItem instead of ::observeItems
The former includes the index at which the item was added and the latter
does not.
2014-09-24 15:28:33 -06:00
Nathan Sobo de29ca6906 Keep existing PaneView SpacePen API working as before
We will eventually deprecate all access to views via
`atom.workspaceView`, which is the only way to get a reference to
instances of PaneView. Draining the swamp!
2014-09-24 15:28:33 -06:00
Nathan Sobo 4ba3162f3e Handle pane commands on PaneElement via command registry 2014-09-24 15:28:33 -06:00
Nathan Sobo 2710c06313 WIP: First stab at custom element for panes
Still need to create a SpacePen shim for access via `atom.workspaceView`
property so we’re backward compatible with packages, but it basically
works.
2014-09-24 15:28:33 -06:00
203 arquivos alterados com 8453 adições e 2987 exclusões
+13 -15
Ver Arquivo
@@ -12,19 +12,21 @@ propose changes to this document in a pull request.
## Submitting Issues
* Check the [debugging guide](https://atom.io/docs/latest/debugging) for tips
on debugging. You might be able to find the cause of the problem and fix
on debugging. You might be able to find the cause of the problem and fix
things yourself.
* Include the version of Atom you are using and the OS.
* Include screenshots and animated GIFs whenever possible; they are immensely
helpful.
* 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 to include. If the dev tools
* Check the dev tools (`alt-cmd-i`) for errors to include. If the dev tools
are open _before_ the error is triggered, a full stack trace for the error
will be logged. If you can reproduce the error, use this approach to get the
full stack trace and include it in the issue.
* On Mac, 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.
* Please setup a [profile picture](https://help.github.com/articles/how-do-i-set-up-my-profile-picture)
to make yourself recognizable and so we can all get to know each other better.
### Package Repositories
@@ -62,6 +64,8 @@ For more information on how to work with Atom's official packages, see
* Use `path.join()` to concatenate filenames.
* Use `os.tmpdir()` rather than `/tmp` when you need to reference the
temporary directory.
* Using a plain `return` when returning explicitly at the end of a function.
* Not `return null`, `return undefined`, `null`, or `undefined`
## Git Commit Messages
@@ -82,6 +86,7 @@ For more information on how to work with Atom's official packages, see
* :green_heart: `:green_heart:` when fixing the CI build
* :white_check_mark: `:white_check_mark:` when adding tests
* :lock: `:lock:` when dealing with security
* :arrow_up: `:arrow_up:` when upgrading dependencies
## CoffeeScript Styleguide
@@ -96,30 +101,23 @@ For more information on how to work with Atom's official packages, see
## Documentation Styleguide
* Use [TomDoc](http://tomdoc.org).
* Use [AtomDoc](https://github.com/atom/atomdoc).
* 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}`
* 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.
# * `name` The {String} name of the package to disable.
# * `options` (optional) The {Object} with disable options (default: {}):
# * `trackTime` A {Boolean}, `true` to track the amount of time taken.
# * `ignoreErrors` A {Boolean}, `true` to catch and ignore errors thrown.
# * `callback` The {Function} to call after the package has been disabled.
#
# Returns `undefined`.
disablePackage: (name, options, callback) ->
+22
Ver Arquivo
@@ -0,0 +1,22 @@
# VERSION: 0.1
# DESCRIPTION: Image to build Atom and create a .rpm file
# Base docker image
FROM fedora:20
# Install dependencies
RUN yum install -y \
make \
gcc \
gcc-c++ \
glibc-devel \
git-core \
libgnome-keyring-devel \
rpmdevtools
# Install node
RUN curl -sL https://rpm.nodesource.com/setup | bash -
RUN yum install -y nodejs
ADD . /atom
WORKDIR /atom
+14
Ver Arquivo
@@ -4,6 +4,9 @@ Atom is a hackable text editor for the 21st century, built on [atom-shell](http:
Visit [atom.io](https://atom.io) to learn more.
Visit [issue #3684](https://github.com/atom/atom/issues/3684) to learn more
about the Atom 1.0 roadmap.
## Installing
### Mac OS X
@@ -36,6 +39,17 @@ Currently only a 64-bit version is available.
The Linux version does not currently automatically update so you will need to
repeat these steps to upgrade to future releases.
### Red Hat Linux (Fedora, CentOS, Red Hat)
Currently only a 64-bit version is available.
1. Download `atom.x86_64.rpm` from the [Atom releases page](https://github.com/atom/atom/releases/latest).
2. Run `sudo yum localinstall atom.x86_64.rpm` on the downloaded package.
3. Launch Atom using the installed `atom` command.
The Linux version does not currently automatically update so you will need to
repeat these steps to upgrade to future releases.
## Building
* [Linux](docs/build-instructions/linux.md)
+1 -1
Ver Arquivo
@@ -6,6 +6,6 @@
"url": "https://github.com/atom/atom.git"
},
"dependencies": {
"atom-package-manager": "0.98.0"
"atom-package-manager": "0.111.0"
}
}
+2 -4
Ver Arquivo
@@ -63,7 +63,7 @@ if [ $OS == 'Mac' ]; 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=$$ "$@"
open -a "$ATOM_PATH/$ATOM_APP_NAME" -n --args --executed-from="$(pwd)" --pid=$$ --path-environment="$PATH" "$@"
fi
elif [ $OS == 'Linux' ]; then
SCRIPT=$(readlink -f "$0")
@@ -71,9 +71,7 @@ elif [ $OS == 'Linux' ]; then
ATOM_PATH="$USR_DIRECTORY/share/atom/atom"
DOT_ATOM_DIR="$HOME/.atom"
if [ ! -d "$DOT_ATOM_DIR" ]; then
mkdir -p "$DOT_ATOM_DIR"
fi
mkdir -p "$DOT_ATOM_DIR"
: ${TMPDIR:=/tmp}
+1 -1
Ver Arquivo
@@ -7,7 +7,7 @@ describe "editorView.", ->
beforeEach ->
atom.workspaceViewParentSelector = '#jasmine-content'
atom.workspaceView = atom.workspace.getView(atom.workspace).__spacePenView
atom.workspaceView = atom.views.getView(atom.workspace).__spacePenView
atom.workspaceView.attachToDom()
atom.workspaceView.width(1024)
+13 -23
Ver Arquivo
@@ -6,7 +6,6 @@ os = require 'os'
# modules work under node v0.11.x.
require 'vm-compatibility-layer'
fm = require 'json-front-matter'
_ = require 'underscore-plus'
packageJson = require '../package.json'
@@ -22,9 +21,9 @@ module.exports = (grunt) ->
grunt.loadNpmTasks('grunt-contrib-csslint')
grunt.loadNpmTasks('grunt-contrib-coffee')
grunt.loadNpmTasks('grunt-contrib-less')
grunt.loadNpmTasks('grunt-markdown')
grunt.loadNpmTasks('grunt-shell')
grunt.loadNpmTasks('grunt-download-atom-shell')
grunt.loadNpmTasks('grunt-atom-shell-installer')
grunt.loadNpmTasks('grunt-peg')
grunt.loadTasks('tasks')
@@ -120,7 +119,10 @@ module.exports = (grunt) ->
for child in fs.readdirSync('node_modules') when child isnt '.bin'
directory = path.join('node_modules', child)
{engines, theme} = grunt.file.readJSON(path.join(directory, 'package.json'))
metadataPath = path.join(directory, 'package.json')
continue unless grunt.file.isFile(metadataPath)
{engines, theme} = grunt.file.readJSON(metadataPath)
if engines?.atom?
coffeeConfig.glob_to_multiple.src.push("#{directory}/**/*.coffee")
lessConfig.glob_to_multiple.src.push("#{directory}/**/*.less")
@@ -191,32 +193,19 @@ module.exports = (grunt) ->
'static/**/*.less'
]
markdown:
guides:
files: [
expand: true
cwd: 'docs'
src: '**/*.md'
dest: 'docs/output/'
ext: '.html'
]
options:
template: 'docs/template.jst'
templateContext:
tag: "v#{major}.#{minor}"
markdownOptions:
gfm: true
preCompile: (src, context) ->
parsed = fm.parse(src)
_.extend(context, parsed.attributes)
parsed.body
'download-atom-shell':
version: packageJson.atomShellVersion
outputDir: 'atom-shell'
downloadDir: atomShellDownloadDir
rebuild: true # rebuild native modules after atom-shell is updated
'create-windows-installer':
appDirectory: shellAppDir
outputDirectory: path.join(buildDir, 'installer')
authors: 'GitHub Inc.'
loadingGif: path.resolve(__dirname, '..', 'resources', 'win', 'loading.gif')
iconUrl: 'https://raw.githubusercontent.com/atom/atom/master/resources/win/atom.ico'
shell:
'kill-atom':
command: killCommand
@@ -234,6 +223,7 @@ module.exports = (grunt) ->
ciTasks.push('dump-symbols') if process.platform isnt 'win32'
ciTasks.push('set-version', 'check-licenses', 'lint')
ciTasks.push('mkdeb') if process.platform is 'linux'
ciTasks.push('create-windows-installer') if process.platform is 'win32'
ciTasks.push('test') if process.platform is 'darwin'
ciTasks.push('codesign')
ciTasks.push('publish-build')
+50
Ver Arquivo
@@ -0,0 +1,50 @@
# VERSION: 0.1
# DESCRIPTION: Create the atom editor in a container
# AUTHOR: Jessica Frazelle <jessie@docker.com>
# COMMENTS:
# This file describes how to build the atom editor
# in a container with all dependencies installed.
# Tested on Debian Jessie.
# USAGE:
# # Download atom Dockerfile
# wget http://raw.githubusercontent.com/atom/atom/master/Dockerfile
#
# # Build atom image
# docker build -t atom .
#
# docker run -v /tmp/.X11-unix:/tmp/.X11-unix \
# -e DISPLAY=unix$DISPLAY atom
#
DOCKER-VERSION 1.3
# Base docker image
FROM debian:jessie
MAINTAINER Jessica Frazelle <jessie@docker.com>
# Install dependencies
RUN apt-get update && apt-get install -y \
build-essential \
ca-certificates \
curl \
git \
libasound2 \
libgconf-2-4 \
libgnome-keyring-dev \
libgtk2.0-0 \
libnss3 \
libxtst6 \
--no-install-recommends
# install node
RUN curl -sL https://deb.nodesource.com/setup | bash -
RUN apt-get install -y nodejs
# clone atom
RUN git clone https://github.com/atom/atom /src
WORKDIR /src
RUN git fetch && git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
RUN script/build && script/grunt install
# Autorun atom
CMD /usr/local/bin/atom --foreground --log-file /var/log/atom.log && tail -f /var/log/atom.log
+5 -8
Ver Arquivo
@@ -7,30 +7,27 @@
},
"dependencies": {
"async": "~0.2.9",
"donna": "1.0.1",
"donna": "1.0.7",
"formidable": "~1.0.14",
"fs-plus": "2.x",
"github-releases": "~0.2.0",
"grunt": "~0.4.1",
"grunt-atom-shell-installer": "^0.10.0",
"grunt-cli": "~0.1.9",
"grunt-coffeelint": "git+https://github.com/atom/grunt-coffeelint.git#cfb99aa99811d52687969532bd5a98011ed95bfe",
"grunt-contrib-coffee": "~0.9.0",
"grunt-contrib-csslint": "~0.1.2",
"grunt-contrib-less": "~0.8.0",
"grunt-cson": "0.10.0",
"grunt-download-atom-shell": "~0.8.0",
"grunt-download-atom-shell": "~0.10.0",
"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",
"json-front-matter": "~0.1.3",
"legal-eagle": "~0.4.0",
"legal-eagle": "~0.6.0",
"minidump": "~0.8",
"normalize-package-data": "0.2.12",
"npm": "~1.4.5",
"rcedit": "~0.1.2",
"read-package-json": "1.1.8",
"rcedit": "~0.3.0",
"request": "~2.27.0",
"rimraf": "~2.2.2",
"runas": "~1.0.1",
+2 -1
Ver Arquivo
@@ -11,6 +11,7 @@ module.exports = (grunt) ->
appDir = grunt.config.get('atom.appDir')
rm shellAppDir
rm path.join(buildDir, 'installer')
mkdir path.dirname(buildDir)
if process.platform is 'darwin'
@@ -153,7 +154,7 @@ module.exports = (grunt) ->
fs.writeFileSync path.join(appDir, 'node_modules', 'symbols-view', 'vendor', 'ctags-win32.exe.ignore'), ''
fs.writeFileSync path.join(shellAppDir, 'atom.exe.gui'), ''
dependencies = ['compile', "generate-license:save"]
dependencies = ['compile', 'generate-license:save', 'generate-module-cache', 'compile-packages-slug']
dependencies.push('copy-info-plist') if process.platform is 'darwin'
dependencies.push('set-exe-icon') if process.platform is 'win32'
grunt.task.run(dependencies...)
+1 -2
Ver Arquivo
@@ -1,4 +1,3 @@
module.exports = (grunt) ->
grunt.registerTask 'check-licenses', 'Report the licenses of all dependencies', ->
legalEagle = require 'legal-eagle'
@@ -13,7 +12,7 @@ module.exports = (grunt) ->
legalEagle options, (err, summary) ->
if err?
console.error(err)
exit 1
process.exit 1
for key of summary
delete summary[key] if key.match /^atom@/
+1 -1
Ver Arquivo
@@ -36,7 +36,7 @@ module.exports = (grunt) ->
spawn {cmd, args}, (error) ->
return callback(error) if error?
setupExePath = path.join(grunt.config.get('atom.shellAppDir'), '..', 'Releases', 'setup.exe')
setupExePath = path.resolve(grunt.config.get('atom.buildDir'), 'installer', 'AtomSetup.exe')
if fs.isFileSync(setupExePath)
args = [setupExePath]
spawn {cmd, args}, (error) -> callback(error)
@@ -0,0 +1,54 @@
path = require 'path'
CSON = require 'season'
fs = require 'fs-plus'
_ = require 'underscore-plus'
module.exports = (grunt) ->
{spawn, rm} = require('./task-helpers')(grunt)
grunt.registerTask 'compile-packages-slug', 'Add bundled package metadata information to the main package.json file', ->
appDir = fs.realpathSync(grunt.config.get('atom.appDir'))
modulesDirectory = path.join(appDir, 'node_modules')
packages = {}
for moduleDirectory in fs.listSync(modulesDirectory)
continue if path.basename(moduleDirectory) is '.bin'
metadataPath = path.join(moduleDirectory, 'package.json')
metadata = grunt.file.readJSON(metadataPath)
continue unless metadata?.engines?.atom?
moduleCache = metadata._atomModuleCache ? {}
rm metadataPath
_.remove(moduleCache.extensions?['.json'] ? [], 'package.json')
for property in ['_from', '_id', 'dist', 'readme', 'readmeFilename']
delete metadata[property]
pack = {metadata, keymaps: {}, menus: {}}
if metadata.main
mainPath = require.resolve(path.resolve(moduleDirectory, metadata.main))
pack.main = path.relative(appDir, mainPath)
for keymapPath in fs.listSync(path.join(moduleDirectory, 'keymaps'), ['.cson', '.json'])
relativePath = path.relative(appDir, keymapPath)
pack.keymaps[relativePath] = CSON.readFileSync(keymapPath)
rm keymapPath
for menuPath in fs.listSync(path.join(moduleDirectory, 'menus'), ['.cson', '.json'])
relativePath = path.relative(appDir, menuPath)
pack.menus[relativePath] = CSON.readFileSync(menuPath)
rm menuPath
packages[metadata.name] = pack
for extension, paths of moduleCache.extensions
delete moduleCache.extensions[extension] if paths.length is 0
metadata = grunt.file.readJSON(path.join(appDir, 'package.json'))
metadata._atomPackages = packages
grunt.file.write(path.join(appDir, 'package.json'), JSON.stringify(metadata))
-41
Ver Arquivo
@@ -1,41 +0,0 @@
fs = require 'fs'
path = require 'path'
_ = require 'underscore-plus'
module.exports = (grunt) ->
{spawn, rm} = require('./task-helpers')(grunt)
grunt.registerTask 'create-installer', 'Create the Windows installer', ->
return unless process.platform is 'win32'
done = @async()
buildDir = grunt.config.get('atom.buildDir')
atomDir = path.join(buildDir, 'Atom')
packageInfo = grunt.file.readJSON(path.join(atomDir, 'resources', 'app', 'package.json'))
inputTemplate = grunt.file.read(path.join('build', 'windows', 'atom.nuspec.erb'))
# NB: Build server has some sort of stamp on the version number
packageInfo.version = packageInfo.version.replace(/-.*$/, '')
targetNuspecPath = path.join(buildDir, 'atom.nuspec')
grunt.file.write(targetNuspecPath, _.template(inputTemplate, packageInfo))
cmd = 'build/windows/nuget.exe'
args = ['pack', targetNuspecPath, '-BasePath', atomDir, '-OutputDirectory', buildDir]
spawn {cmd, args}, (error, result, code) ->
return done(error) if error?
pkgs = pkg for pkg in fs.readdirSync(buildDir) when path.extname(pkg) is '.nupkg'
releasesDir = path.join(buildDir, 'Releases')
# NB: Gonna clear Releases for now, in the future we need to pull down
# the existing version
rm(releasesDir)
cmd = 'build/windows/update.com'
args = ['--releasify', path.join(buildDir, pkgs), '-r', releasesDir, '-g', 'build/windows/install-spinner.gif']
spawn {cmd, args}, (error, result, code) -> done(error)
+5
Ver Arquivo
@@ -6,12 +6,17 @@ _ = require 'underscore-plus'
donna = require 'donna'
tello = require 'tello'
moduleBlacklist = [
'space-pen'
]
module.exports = (grunt) ->
getClassesToInclude = ->
modulesPath = path.resolve(__dirname, '..', '..', 'node_modules')
classes = {}
fs.traverseTreeSync modulesPath, (modulePath) ->
return false if modulePath.match(/node_modules/g).length > 1 # dont need the dependencies of the dependencies
return false if path.basename(modulePath) in moduleBlacklist
return true unless path.basename(modulePath) is 'package.json'
return true unless fs.isFileSync(modulePath)
@@ -0,0 +1,39 @@
path = require 'path'
fs = require 'fs-plus'
ModuleCache = require '../../src/module-cache'
module.exports = (grunt) ->
grunt.registerTask 'generate-module-cache', 'Generate a module cache for all core modules and packages', ->
appDir = grunt.config.get('atom.appDir')
{packageDependencies} = grunt.file.readJSON('package.json')
for packageName, version of packageDependencies
ModuleCache.create(path.join(appDir, 'node_modules', packageName))
ModuleCache.create(appDir)
metadata = grunt.file.readJSON(path.join(appDir, 'package.json'))
metadata._atomModuleCache.folders.forEach (folder) ->
if '' in folder.paths
folder.paths = [
''
'exports'
'spec'
'src'
'src/browser'
'static'
'vendor'
]
# Reactionary does not have an explicit react dependency
metadata._atomModuleCache.folders.push
paths: [
'node_modules/reactionary-atom-fork/lib'
]
dependencies: {
'react-atom-fork': metadata.dependencies['react-atom-fork']
}
grunt.file.write(path.join(appDir, 'package.json'), JSON.stringify(metadata))
+4 -4
Ver Arquivo
@@ -32,7 +32,7 @@ module.exports = (grunt) ->
binDir = path.join(installDir, 'bin')
shareDir = path.join(installDir, 'share', 'atom')
iconName = path.join(shareDir,'resources','app','resources','atom.png')
iconName = path.join(shareDir,'resources', 'app', 'resources', 'atom.png')
mkdir binDir
cp 'atom.sh', path.join(binDir, 'atom')
@@ -40,11 +40,11 @@ module.exports = (grunt) ->
mkdir path.dirname(shareDir)
cp shellAppDir, shareDir
# Create Atom.desktop if installation not in temporary folder
# Create atom.desktop if installation not in temporary folder
tmpDir = if process.env.TMPDIR? then process.env.TMPDIR else '/tmp'
if installDir.indexOf(tmpDir) isnt 0
desktopFile = path.join('resources', 'linux', 'Atom.desktop.in')
desktopInstallFile = path.join(installDir, 'share', 'applications', 'Atom.desktop')
desktopFile = path.join('resources', 'linux', 'atom.desktop.in')
desktopInstallFile = path.join(installDir, 'share', 'applications', 'atom.desktop')
{description} = grunt.file.readJSON('package.json')
iconName = path.join(shareDir, 'resources', 'app', 'resources', 'atom.png')
+15
Ver Arquivo
@@ -60,3 +60,18 @@ module.exports =
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
"""
'jschardet@1.1.0':
license: 'LGPL'
source: 'README.md in the repository'
sourceText: """
JsChardet
=========
Port of python's chardet (http://chardet.feedparser.org/).
License
-------
LGPL
"""
+1 -1
Ver Arquivo
@@ -39,7 +39,7 @@ module.exports = (grunt) ->
getInstalledSize buildDir, (error, installedSize) ->
data = {name, version, description, section, arch, maintainer, installDir, iconName, installedSize}
controlFilePath = fillTemplate(path.join('resources', 'linux', 'debian', 'control'), data)
desktopFilePath = fillTemplate(path.join('resources', 'linux', 'Atom.desktop'), data)
desktopFilePath = fillTemplate(path.join('resources', 'linux', 'atom.desktop'), data)
icon = path.join('resources', 'atom.png')
cmd = path.join('script', 'mkdeb')
+48
Ver Arquivo
@@ -0,0 +1,48 @@
fs = require 'fs'
path = require 'path'
_ = require 'underscore-plus'
module.exports = (grunt) ->
{spawn, rm, mkdir} = require('./task-helpers')(grunt)
fillTemplate = (filePath, data) ->
template = _.template(String(fs.readFileSync("#{filePath}.in")))
filled = template(data)
outputPath = path.join(grunt.config.get('atom.buildDir'), path.basename(filePath))
grunt.file.write(outputPath, filled)
outputPath
grunt.registerTask 'mkrpm', 'Create rpm package', ->
done = @async()
if process.arch is 'ia32'
arch = 'i386'
else if process.arch is 'x64'
arch = 'amd64'
else
return done("Unsupported arch #{process.arch}")
{name, version, description} = grunt.file.readJSON('package.json')
buildDir = grunt.config.get('atom.buildDir')
rpmDir = path.join(buildDir, 'rpm')
rm rpmDir
mkdir rpmDir
installDir = grunt.config.get('atom.installDir')
shareDir = path.join(installDir, 'share', 'atom')
iconName = path.join(shareDir, 'resources', 'app', 'resources', 'atom.png')
data = {name, version, description, installDir, iconName}
specFilePath = fillTemplate(path.join('resources', 'linux', 'redhat', 'atom.spec'), data)
desktopFilePath = fillTemplate(path.join('resources', 'linux', 'atom.desktop'), data)
cmd = path.join('script', 'mkrpm')
args = [specFilePath, desktopFilePath, buildDir]
spawn {cmd, args}, (error) ->
if error?
done(error)
else
grunt.log.ok "Created rpm package in #{rpmDir}"
done()
+51 -14
Ver Arquivo
@@ -20,9 +20,9 @@ module.exports = (gruntObject) ->
{cp} = require('./task-helpers')(grunt)
grunt.registerTask 'publish-build', 'Publish the built app', ->
return if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH isnt 'master'
tasks = ['upload-assets']
tasks.unshift('build-docs', 'prepare-docs') if process.platform is 'darwin'
tasks = []
tasks.push('build-docs', 'prepare-docs') if process.platform is 'darwin'
tasks.push('upload-assets') if process.env.JANKY_SHA1 and process.env.JANKY_BRANCH is 'master'
grunt.task.run(tasks)
grunt.registerTask 'prepare-docs', 'Move api.json to atom-api.json', ->
@@ -31,7 +31,16 @@ module.exports = (gruntObject) ->
cp path.join(docsOutputDir, 'api.json'), path.join(buildDir, 'atom-api.json')
grunt.registerTask 'upload-assets', 'Upload the assets to a GitHub release', ->
done = @async()
doneCallback = @async()
startTime = Date.now()
done = (args...) ->
elapsedTime = Math.round((Date.now() - startTime) / 100) / 10
grunt.log.ok("Upload time: #{elapsedTime}s")
doneCallback(args...)
unless token
return done(new Error('ATOM_ACCESS_TOKEN environment variable not set'))
buildDir = grunt.config.get('atom.buildDir')
assets = getAssets()
@@ -45,6 +54,11 @@ module.exports = (gruntObject) ->
uploadAssets(release, buildDir, assets, done)
getAssets = ->
{cp} = require('./task-helpers')(grunt)
{version} = grunt.file.readJSON('package.json')
buildDir = grunt.config.get('atom.buildDir')
switch process.platform
when 'darwin'
[
@@ -53,20 +67,31 @@ getAssets = ->
{assetName: 'atom-api.json', sourcePath: 'atom-api.json'}
]
when 'win32'
[
{assetName: 'atom-windows.zip', sourcePath: 'Atom'}
]
assets = [{assetName: 'atom-windows.zip', sourcePath: 'Atom'}]
for squirrelAsset in ['AtomSetup.exe', 'RELEASES', "atom-#{version}-full.nupkg"]
cp path.join(buildDir, 'installer', squirrelAsset), path.join(buildDir, squirrelAsset)
assets.push({assetName: squirrelAsset, sourcePath: assetName})
assets
when 'linux'
buildDir = grunt.config.get('atom.buildDir')
if process.arch is 'ia32'
arch = 'i386'
else
arch = 'amd64'
{version} = grunt.file.readJSON('package.json')
# Check for a Debian build
sourcePath = "#{buildDir}/atom-#{version}-#{arch}.deb"
assetName = "atom-#{arch}.deb"
{cp} = require('./task-helpers')(grunt)
# Check for a Fedora build
unless fs.isFileSync(sourcePath)
rpmName = fs.readdirSync("#{buildDir}/rpm")[0]
sourcePath = "#{buildDir}/rpm/#{rpmName}"
if process.arch is 'ia32'
arch = 'i386'
else
arch = 'x86_64'
assetName = "atom.#{arch}.rpm"
cp sourcePath, path.join(buildDir, assetName)
[
@@ -102,10 +127,22 @@ getAtomDraftRelease = (callback) ->
logError('Fetching atom/atom releases failed', error, releases)
callback(error)
else
for release in releases when release.draft
callback(null, release)
return
callback(new Error('No draft release in atom/atom repo'))
[firstDraft] = releases.filter ({draft}) -> draft
if firstDraft?
options =
uri: firstDraft.assets_url
method: 'GET'
headers: defaultHeaders
json: true
request options, (error, response, assets=[]) ->
if error? or response.statusCode isnt 200
logError('Fetching draft release assets failed', error, assets)
callback(error ? new Error(response.statusCode))
else
firstDraft.assets = assets
callback(null, firstDraft)
else
callback(new Error('No draft release in atom/atom repo'))
deleteRelease = (release) ->
options =
+1 -1
Ver Arquivo
@@ -32,7 +32,7 @@ module.exports = (grunt) ->
packageJsonPath = path.join(appDir, 'package.json')
packageJson = require(packageJsonPath)
packageJson.version = version
packageJsonString = JSON.stringify(packageJson, null, 2)
packageJsonString = JSON.stringify(packageJson)
fs.writeFileSync(packageJsonPath, packageJsonString)
if process.platform is 'darwin'
+5 -3
Ver Arquivo
@@ -4,6 +4,8 @@ path = require 'path'
_ = require 'underscore-plus'
async = require 'async'
concurrency = 2
module.exports = (grunt) ->
{isAtomPackage, spawn} = require('./task-helpers')(grunt)
@@ -61,7 +63,7 @@ module.exports = (grunt) ->
continue unless isAtomPackage(packagePath)
packageSpecQueue.push(packagePath)
packageSpecQueue.concurrency = 1
packageSpecQueue.concurrency = concurrency - 1
packageSpecQueue.drain = -> callback(null, failedPackages)
runCoreSpecs = (callback) ->
@@ -84,7 +86,7 @@ module.exports = (grunt) ->
fs.unlinkSync('ci.log')
else
# TODO: Restore concurrency on Windows
packageSpecQueue.concurrency = 2
packageSpecQueue.concurrency = concurrency
callback(null, error)
@@ -102,7 +104,7 @@ module.exports = (grunt) ->
method [runCoreSpecs, runPackageSpecs], (error, results) ->
[coreSpecFailed, failedPackages] = results
elapsedTime = Math.round((Date.now() - startTime) / 100) / 10
grunt.verbose.writeln("Total spec time: #{elapsedTime}s")
grunt.log.ok("Total spec time: #{elapsedTime}s using #{concurrency} cores")
failures = failedPackages
failures.push "atom core" if coreSpecFailed
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
-32
Ver Arquivo
@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id><%= name %></id>
<version><%= version %></version>
<authors>The Atom Community</authors>
<owners>The Atom Community</owners>
<iconUrl>https://raw.githubusercontent.com/atom/atom/master/resources/win/atom.ico</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description><%= description %></description>
</metadata>
<files>
<file src="locales\**" target="lib\net45\locales" />
<file src="resources\**" target="lib\net45\resources" />
<file src="*.pak" target="lib\net45" />
<file src="atom.exe" target="lib\net45\atom.exe" />
<file src="atom.exe.gui" target="lib\net45\atom.exe.gui" />
<file src="chromiumcontent.dll" target="lib\net45\chromiumcontent.dll" />
<file src="d3dcompiler_43.dll" target="lib\net45\d3dcompiler_43.dll" />
<file src="ffmpegsumo.dll" target="lib\net45\ffmpegsumo.dll" />
<file src="icudtl.dat" target="lib\net45\icudtl.dat" />
<file src="libEGL.dll" target="lib\net45\libEGL.dll" />
<file src="libGLESv2.dll" target="lib\net45\libGLESv2.dll" />
<file src="LICENSE" target="lib\net45\LICENSE" />
<file src="msvcp120.dll" target="lib\net45\msvcp120.dll" />
<file src="msvcr120.dll" target="lib\net45\msvcr120.dll" />
<file src="vccorlib120.dll" target="lib\net45\vccorlib120.dll" />
<file src="version" target="lib\net45\version" />
<file src="xinput1_3.dll" target="lib\net45\xinput1_3.dll" />
</files>
</package>
Arquivo binário não exibido.

Antes

Largura:  |  Altura:  |  Tamanho: 43 KiB

+2 -57
Ver Arquivo
@@ -1,60 +1,5 @@
# Welcome to the Atom API Documentation
# Welcome to the Atom Docs
![Atom](https://cloud.githubusercontent.com/assets/72919/2874231/3af1db48-d3dd-11e3-98dc-6066f8bc766f.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
TODO: Write when docs move to a dedicated repo.
+8 -8
Ver Arquivo
@@ -6,29 +6,29 @@ 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`:
keystrokes pass through `atom-text-editor` elements:
```coffee
'.editor':
'atom-text-editor':
'cmd-delete': 'editor:delete-to-beginning-of-line'
'alt-backspace': 'editor:delete-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)'
'atom-text-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
patterns* to *commands*. When an element with the `atom-text-editor` class is focused and
`cmd-delete` is pressed, an custom DOM event called
`editor:delete-to-beginning-of-line` is emitted on the `.editor` element.
`editor:delete-to-beginning-of-line` is emitted on the `atom-text-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.
`mini` attribute. 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
@@ -91,7 +91,7 @@ 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.
For example, the following code removes the keybinding for `a` in the Tree View,
For example, the following code removes the keybinding for `a` in the Tree View,
which is normally used to trigger the `tree-view:add-file` command:
```coffee
@@ -0,0 +1,87 @@
# Scoped Settings, Scopes and Scope Descriptors
Atom supports language-specific settings. You can soft wrap only Markdown files, or set the tab length to 4 in Python files.
Language-specific settings are a subset of something more general we call "scoped settings". Scoped settings allow targeting down to a specific syntax token type. For example, you could conceivably set a setting to target only Ruby comments, only code inside Markdown files, or even only JavaScript function names.
## Scope names in syntax tokens
Each token in the editor has a collection of scope names. For example, the aformentioned JavaScript function name might have the scope names `function` and `name`. An open paren might have the scope names `punctuation`, `parameters`, `begin`.
Scope names work just like CSS classes. In fact, in the editor, scope names are attached to a token's DOM node as CSS classes.
Take this piece of JavaScript:
```js
function functionName() {
console.log('Log it out');
}
```
In the dev tools, the first line's markup looks like this.
![screen shot 2014-10-14 at 11 21 35 am](https://cloud.githubusercontent.com/assets/69169/4634321/2b1b923c-53cf-11e4-9268-6e57bcb14ec8.png)
All the class names on the spans are scope names. Any scope name can be used to target a setting's value.
## Scope Selectors
Scope selectors allow you to target specific tokens just like a CSS selector targets specific nodes in the DOM. Some examples:
```coffee
'.source.js' # selects all javascript tokens
'.source.js .function.name' # selects all javascript function names
'.function.name' # selects all function names in any language
```
[Config::set][config-set] accepts a `scopeSelector`. If you'd like to set a setting for JavaScript function names, you can give it the js function name `scopeSelector`:
```coffee
atom.config.set('.source.js .function.name', 'my-package.my-setting', 'special value')
```
## Scope Descriptors
A scope descriptor is an [Object][scope-descriptor] that wraps an `Array` of
`String`s. The Array describes a path from the root of the syntax tree to a
token including _all_ scope names for the entire path.
In our JavaScript example above, a scope descriptor for the function name token would be:
```coffee
['source.js', 'meta.function.js', 'entity.name.function.js']
```
[Config::get][config-get] accepts a `scopeDescriptor`. You can get the value for your setting scoped to JavaScript function names via:
```coffee
scopeDescriptor = ['source.js', 'meta.function.js', 'entity.name.function.js']
value = atom.config.get(scopeDescriptor, 'my-package.my-setting')
```
But, you do not need to generate scope descriptors by hand. There are a couple methods available to get the scope descriptor from the editor:
* [Editor::getRootScopeDescriptor][editor-getRootScopeDescriptor] to get the language's descriptor. eg. `[".source.js"]`
* [Editor::scopeDescriptorForBufferPosition][editor-scopeDescriptorForBufferPosition] to get the descriptor at a specific position in the buffer.
* [Cursor::getScopeDescriptor][cursor-getScopeDescriptor] to get a cursor's descriptor based on position. eg. if the cursor were in the name of the method in our example it would return `["source.js", "meta.function.js", "entity.name.function.js"]`
Let's revisit our example using these methods:
```coffee
editor = atom.workspace.getActiveTextEditor()
cursor = editor.getLastCursor()
valueAtCursor = atom.config.get(cursor.getScopeDescriptor(), 'my-package.my-setting')
valueForLanguage = atom.config.get(editor.getRootScopeDescriptor(), 'my-package.my-setting')
```
[config]:https://atom.io/docs/api/latest/Config
[config-get]:https://atom.io/docs/api/latest/Config#instance-get
[config-set]:https://atom.io/docs/api/latest/Config#instance-set
[config-observe]:https://atom.io/docs/api/latest/Config#instance-observe
[editor-getRootScopeDescriptor]:https://atom.io/docs/api/latest/TextEditor#instance-getRootScopeDescriptor
[editor-scopeDescriptorForBufferPosition]:https://atom.io/docs/api/latest/TextEditor#instance-scopeDescriptorForBufferPosition
[cursor-getScopeDescriptor]:https://atom.io/docs/api/latest/Cursor#instance-getScopeDescriptor
[scope-descriptor]:https://atom.io/docs/api/latest/ScopeDescriptor
+2 -2
Ver Arquivo
@@ -11,7 +11,7 @@ have methods that are view-specific. For example, you could call both general
and view-specific on the global `atom.workspaceView` instance:
```coffeescript
atom.workspaceView.find('.editor.active') # standard jQuery method
atom.workspaceView.find('atom-text-editor.active') # standard jQuery method
atom.workspaceView.getActiveEditor() # view-specific method
```
@@ -20,7 +20,7 @@ If you retrieve a jQuery wrapper for an element associated with a view, use the
```coffeescript
# this is a plain jQuery object; you can't call view-specific methods
editorElement = atom.workspaceView.find('.editor.active')
editorElement = atom.workspaceView.find('atom-text-editor.active')
# get the view object by calling `.view()` to call view-specific methods
editorView = editorElement.view()
+30 -8
Ver Arquivo
@@ -16,17 +16,17 @@ Ubuntu LTS 12.04 64-bit is the recommended platform.
### Ubuntu / Debian
* `sudo apt-get install build-essential git libgnome-keyring-dev`
* `sudo apt-get install build-essential git libgnome-keyring-dev fakeroot`
* Instructions for [Node.js](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#ubuntu-mint-elementary-os).
### Fedora
### Fedora / CentOS / RHEL
* `sudo yum --assumeyes install make gcc gcc-c++ glibc-devel git-core libgnome-keyring-devel`
* `sudo yum --assumeyes install make gcc gcc-c++ glibc-devel git-core libgnome-keyring-devel rpmdevtools`
* Instructions for [Node.js](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#fedora).
### Arch
* `sudo pacman -S base-devel git nodejs libgnome-keyring`
* `sudo pacman -S base-devel git nodejs libgnome-keyring python2`
* `export PYTHON=/usr/bin/python2` before building Atom.
## Instructions
@@ -43,7 +43,7 @@ If you have problems with permissions don't forget to prefix with `sudo`
2. Checkout the latest Atom release:
```sh
git fetch
git fetch -p
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
```
@@ -61,13 +61,19 @@ If you have problems with permissions don't forget to prefix with `sudo`
sudo script/grunt install
```
5. *Optionally*, you may generate a `.deb` package at `$TMPDIR/atom-build`:
To use the newly installed Atom, quit and restart all running Atom instances.
5. *Optionally*, you may generate distributable packages of Atom at `$TMPDIR/atom-build`. Currenty, `.deb` and `.rpm` package types are supported. To create a `.deb` package run:
```sh
script/grunt mkdeb
```
Use the newly installed Atom by fully quitting Atom and then reopening.
To create an `.rpm` package run
```sh
script/grunt mkrpm
```
## Advanced Options
@@ -85,7 +91,7 @@ script/build --build-dir /build/atom/here
## Troubleshooting
### Exception: "TypeError: Unable to watch path"
### TypeError: Unable to watch path
If you get following error with a big traceback right after Atom starts:
@@ -115,6 +121,22 @@ have Node.js installed, or node isn't identified as Node.js on your machine.
If it's the latter, entering `sudo ln -s /usr/bin/nodejs /usr/bin/node` into
your terminal may fix the issue.
### AttributeError: 'module' object has no attribute 'script_main'
If you get following error with a big traceback while building Atom:
```
sys.exit(gyp.script_main()) AttributeError: 'module' object has no attribute 'script_main' gyp ERR!
```
you need to uninstall the system version of gyp.
On Fedora you would do the following:
```sh
sudo yum remove gyp
```
#### You can also use Alternatives
On some variants (mostly Debian based distros) it's preferable for you to use
+3 -3
Ver Arquivo
@@ -36,7 +36,7 @@
## Why do I have to use GitHub for Windows?
You don't. You can use your existing Git! GitHub for Windows's Git Shell is just
easier to set up.
easier to set up.
If you _prefer_ using your existing Git installation, make sure git's cmd directory is in your PATH env variable (e.g. `C:\Program Files (x86)\Git\cmd`) before you open your powershell or command window.
Note that you may have to open your command window as administrator. For powershell that doesn't seem to always be the case, though.
@@ -67,11 +67,11 @@ If none of this works, do install Github for Windows and use its Git shell. Make
* https://code.google.com/p/gyp/issues/detail?id=393
* `script/build` stops at installing runas with 'Failed at the runas@0.5.4 install script.'
See the next item.
* `error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found.`
* If you're building atom with Visual Studio 2013 try executing the following
command in your Git shell and then re-run `script/build`:
+16 -14
Ver Arquivo
@@ -9,22 +9,27 @@ in the proper package's repository.
### 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`.
The first step is creating your own clone.
For example, if you want to make changes to the `tree-view` package, run the
following command:
For example, if you want to make changes to the `tree-view` package, fork the repo on your github account, then clone it:
```
> apm develop tree-view
Cloning https://github.com/atom/tree-view ✓
> git clone git@github.com:your-username/tree-view.git
```
Next install all the dependencies:
```
> cd tree-view
> apm install
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.
Now you can link it to development mode so when you run an Atom window with `atom --dev`, you will use your fork instead of the built in package:
```
> apm link -d
```
### Running in Development Mode
@@ -46,7 +51,4 @@ 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.
You'll want to keep dependencies up to date by running `apm update` after pulling any upstream changes.
+24 -17
Ver Arquivo
@@ -207,37 +207,44 @@ specific parts of the interface, like adding a file in the tree-view:
```coffeescript
'context-menu':
'.tree-view':
'Add file': 'tree-view:add-file'
'.workspace':
'Inspect Element': 'core:inspect'
'.tree-view': [
{label: 'Add file', command: 'tree-view:add-file'}
]
'atom-workspace': [
{label: 'Inspect Element', command: 'core:inspect'}
]
```
To add your own item to the application menu simply create a top level
`context-menu` key in any menu configuration file in _menus_. This can be a
JSON or [CSON] file.
Context menus are created by determining which element was selected and
then adding all of the menu items whose selectors match that element (in
the order which they were loaded). The process is then repeated for the
elements until reaching the top of the DOM tree.
Context menus are created by determining which element was selected and then
adding all of the menu items whose selectors match that element (in the order
which they were loaded). The process is then repeated for the elements until
reaching the top of the DOM tree.
In the example above, the `Add file` item will only appear when the focused item
or one of its parents has the `tree-view` class applied to it.
You can also add separators and submenus to your context menus. To add a
submenu, pass in another object instead of a command. To add a separator, use
`-` for the command of the item.
submenu, provide a `submenu` key instead of a command. To add a separator, add
an item with a single `type: 'separator'` key/value pair.
```coffeescript
'context-menu':
'.workspace':
'Inspect Element': 'core:inspect'
'Separator': '-'
'Text':
'Select All': 'core:select-all'
'Another Separator': '-'
'Deleted Selected Text': 'core:delete'
'atom-workspace': [
{
label: 'Text'
submenu: [
{label: 'Inspect Element', command: 'core:inspect'}
{type: 'separator'}
{label: 'Selector All', command: 'core:select-all'}
{type: 'separator'}
{label: 'Deleted Selected Text', command: 'core:delete'}
]
}
]
```
## Snippets
+3 -3
Ver Arquivo
@@ -60,10 +60,10 @@ with events in specific contexts. Here's a small example, excerpted from Atom's
built-in keymaps:
```coffee
'.editor':
'atom-text-editor':
'enter': 'editor:newline'
'.mini.editor input':
'atom-text-editor[mini] input':
'enter': 'core:confirm'
```
@@ -169,7 +169,7 @@ For example, to change the color of the cursor, you could add the following
rule to your _~/.atom/styles.less_ file:
```less
.editor.is-focused .cursor {
atom-text-editor.is-focused .cursor {
border-color: pink;
}
```
+7
Ver Arquivo
@@ -9,6 +9,7 @@
* [Converting a TextMate Bundle](converting-a-text-mate-bundle.md)
* [Converting a TextMate Theme](converting-a-text-mate-theme.md)
* [Contributing](contributing.md)
* [Contributing to Core Packages](contributing-to-packages.md)
* [Debugging](debugging.md)
### Advanced Topics
@@ -18,3 +19,9 @@
* [Keymaps](advanced/keymaps.md)
* [Serialization](advanced/serialization.md)
* [View System](advanced/view-system.md)
* [Scopes and Scope Descriptors](advanced/scopes-and-scope-descriptors.md)
### Upgrading to 1.0 APIs
* [Upgrading Your UI Theme Or Package Selectors](upgrading/upgrading-your-ui-theme.md)
* [Upgrading Your Syntax Theme](upgrading/upgrading-your-syntax-theme.md)
-150
Ver Arquivo
@@ -1,150 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="../../assets/js/html5shiv.js"></script>
<script src="../../assets/js/respond.min.js"></script>
<![endif]-->
<title>Atom - <%= title %></title>
<style>
/*github.com style (c) Vasily Polovnyov <vast@whiteants.net>*/
pre code {
display: block; padding: 0.5em;
color: #333;
background: #f8f8ff
}
pre .comment,
pre .template_comment,
pre .diff .header,
pre .javadoc {
color: #998;
font-style: italic
}
pre .keyword,
pre .css .rule .keyword,
pre .winutils,
pre .javascript .title,
pre .nginx .title,
pre .subst,
pre .request,
pre .status {
color: #333;
font-weight: bold
}
pre .number,
pre .hexcolor,
pre .ruby .constant {
color: #099;
}
pre .string,
pre .tag .value,
pre .phpdoc,
pre .tex .formula {
color: #d14
}
pre .title,
pre .id {
color: #900;
font-weight: bold
}
pre .javascript .title,
pre .lisp .title,
pre .clojure .title,
pre .subst {
font-weight: normal
}
pre .class .title,
pre .haskell .type,
pre .vhdl .literal,
pre .tex .command {
color: #458;
font-weight: bold
}
pre .tag,
pre .tag .title,
pre .rules .property,
pre .django .tag .keyword {
color: #000080;
font-weight: normal
}
pre .attribute,
pre .variable,
pre .lisp .body {
color: #008080
}
pre .regexp {
color: #009926
}
pre .class {
color: #458;
font-weight: bold
}
pre .symbol,
pre .ruby .symbol .string,
pre .lisp .keyword,
pre .tex .special,
pre .prompt {
color: #990073
}
pre .built_in,
pre .lisp .title,
pre .clojure .built_in {
color: #0086b3
}
pre .preprocessor,
pre .pi,
pre .doctype,
pre .shebang,
pre .cdata {
color: #999;
font-weight: bold
}
pre .deletion {
background: #fdd
}
pre .addition {
background: #dfd
}
pre .diff .change {
background: #0086b3
}
pre .chunk {
color: #aaa
}
body {
padding-top: 50px;
}
</style>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/<%= tag %>/index.html">Atom Documentation</a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="/docs/api/<%= tag %>/api/index.html">API</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<div class="container">
<%= content %>
</div>
</body>
</html>
@@ -0,0 +1,27 @@
# Upgrading Your Syntax Theme
Text editor content is now rendered in the shadow DOM, which shields it from being styled by global style sheets to protect against accidental style pollution. For more background on the shadow DOM, check out the [Shadow DOM 101][shadow-dom-101] on HTML 5 Rocks.
Syntax themes are specifically intended to style only text editor content, so they are automatically loaded directly into the text editor's shadow DOM when it is enabled. This happens automatically when the the theme's `package.json` contains a `theme: "syntax"` declaration, so you don't need to change anything to target the appropriate context.
When theme style sheets are loaded into the text editor's shadow DOM, selectors intended to target the editor from the *outside* no longer make sense. Styles targeting the `.editor` and `.editor-colors` classes instead need to target the `:host` pseudo-element, which matches against the containing `atom-text-editor` node. Check out the [Shadow DOM 201][host-pseudo-element] article for more information about the `:host` pseudo-element.
Here's an example from Atom's light syntax theme. Note that the previous selectors intended to target the editor from the outside have been retained to allow the theme to keep working during the transition phase when it is possible to disable the shadow DOM.
```css
.editor-colors, :host { /* :host added */
background-color: @syntax-background-color;
color: @syntax-text-color;
}
.editor, :host { /* :host added */
.invisible-character {
color: @syntax-invisible-character-color;
}
/* more nested selectors... */
}
```
[shadow-dom-101]: http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom
[host-pseudo-element]: http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201#toc-style-host
+137
Ver Arquivo
@@ -0,0 +1,137 @@
# Upgrading Your UI Theme Or Package Selectors
In addition to changes in Atom's scripting API, we'll also be making some breaking changes to Atom's DOM structure, requiring stylesheets and keymaps in both packages and themes to be updated.
## Deprecation Cop
Deprecation cop will list usages of deprecated selector patterns to guide you. You can access it via the command palette (`cmd-shift-p`, then search for `Deprecation`). It breaks the deprecations down by package:
![dep-cop](https://cloud.githubusercontent.com/assets/69169/5078860/d38a5df4-6e64-11e4-95b6-eb585ee9bbfc.png)
## Custom Tags
Rather than adding classes to standard HTML elements to indicate their role, Atom now uses custom element names. For example, `<div class="workspace">` has now been replaced with `<atom-workspace>`. Selectors should be updated accordingly. Note that tag names have lower specificity than classes in CSS, so you'll need to take care in converting things.
Old Selector | New Selector
--------------------|--------------------------------
`.editor` | `atom-text-editor`
`.editor.mini` | `atom-text-editor[mini]`
`.workspace` | `atom-workspace`
`.horizontal` | `atom-workspace-axis.horizontal`
`.vertical` | `atom-workspace-axis.vertical`
`.pane-container` | `atom-pane-conatiner`
`.pane` | `atom-pane`
`.tool-panel` | `atom-panel`
`.panel-top` | `atom-panel.top`
`.panel-bottom` | `atom-panel.bottom`
`.panel-left` | `atom-panel.left`
`.panel-right` | `atom-panel.right`
`.overlay` | `atom-panel.modal`
## Supporting the Shadow DOM
Text editor content is now rendered in the shadow DOM, which shields it from being styled by global style sheets to protect against accidental style pollution. For more background on the shadow DOM, check out the [Shadow DOM 101][shadow-dom-101] on HTML 5 Rocks. If you need to style text editor content in a UI theme, you'll need to circumvent this protection for any rules that target the text editor's content. Some examples of the kinds of UI theme styles needing to be updated:
* Highlight decorations
* Gutter decorations
* Line decorations
* Scrollbar styling
* Anything targeting a child selector of `.editor`
During a transition phase, it will be possible to enable or disable the text editor's shadow DOM in the settings, so themes will need to be compatible with both approaches.
### Shadow DOM Selectors
Chromium provides two tools for bypassing shadow boundaries, the `::shadow` pseudo-element and the `/deep/` combinator. For an in-depth explanation of styling the shadow DOM, see the [Shadow DOM 201][shadow-dom-201] article on HTML 5 Rocks.
#### ::shadow
The `::shadow` pseudo-element allows you to bypass a single shadow root. For example, say you want to update a highlight decoration for a linter package. Initially, the style looks as follows:
```css
// Without shadow DOM support
atom-text-editor .highlight.my-linter {
background: hotpink;
}
```
In order for this style to apply with the shadow DOM enabled, you will need to add a second selector with the `::shadow` pseudo-element. You should leave the original selector in place so your theme continues to work with the shadow DOM disabled during the transition period.
```css
// With shadow DOM support
atom-text-editor .highlight.my-linter,
atom-text-editor::shadow .highlight.my-linter {
background: hotpink;
}
```
Check out the [find-and-replace][find-and-replace] package for another example of using `::shadow` to pierce the shadow DOM.
#### /deep/
The `/deep/` combinator overrides *all* shadow boundaries, making it useful for rules you want to apply globally such as scrollbar styling. Here's a snippet containing scrollbar styling for the Atom Dark UI theme before shadow DOM support:
```css
// Without shadow DOM support
.scrollbars-visible-always {
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track,
::-webkit-scrollbar-corner {
background: @scrollbar-background-color;
}
::-webkit-scrollbar-thumb {
background: @scrollbar-color;
border-radius: 5px;
box-shadow: 0 0 1px black inset;
}
}
```
To style scrollbars even inside of the shadow DOM, each rule needs to be prefixed with `/deep/`. We use `/deep/` instead of `::shadow` because we don't care about the selector of the host element in this case. We just want our styling to apply everywhere.
```css
// With shadow DOM support using /deep/
.scrollbars-visible-always {
/deep/ ::-webkit-scrollbar {
width: 8px;
height: 8px;
}
/deep/ ::-webkit-scrollbar-track,
/deep/ ::-webkit-scrollbar-corner {
background: @scrollbar-background-color;
}
/deep/ ::-webkit-scrollbar-thumb {
background: @scrollbar-color;
border-radius: 5px;
box-shadow: 0 0 1px black inset;
}
}
```
### Context-Targeted Style Sheets
The selector features discussed above allow you to target shadow DOM content with specific selectors, but Atom also allows you to target a specific shadow DOM context with an entire style sheet. The context into which a style sheet is loaded is based on the file name. If you want to load a style sheet into the editor, name it with the `.atom-text-editor.less` or `.atom-text-editor.css` extensions.
```
my-ui-theme/
stylesheets/
index.less # loaded globally
index.atom-text-editor.less # loaded in the text editor shadow DOM
```
Check out this [style sheet](https://github.com/atom/decoration-example/blob/master/stylesheets/decoration-example.atom-text-editor.less) from the decoration-example package for an example of context-targeting.
Inside a context-targeted style sheet, there's no need to use the `::shadow` or `/deep/` expressions. If you want to refer to the element containing the shadow root, you can use the `::host` pseudo-element.
During the transition phase, style sheets targeting the `atom-text-editor` context will *also* be loaded globally. Make sure you update your selectors in a way that maintains compatibility with the shadow DOM being disabled. That means if you use a `::host` pseudo element, you should also include the same style rule matches against `atom-text-editor`.
[shadow-dom-101]: http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom
[shadow-dom-201]: http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201#toc-style-cat-hat
[find-and-replace]: https://github.com/atom/find-and-replace/blob/95351f261bc384960a69b66bf12eae8002da63f9/stylesheets/find-and-replace.less#L10
+3 -3
Ver Arquivo
@@ -91,13 +91,13 @@ _keymaps/ascii-art.cson_ and add a key binding linking `ctrl-alt-a` to the
you don't need it anymore. When finished, the file will look like this:
```coffeescript
'.editor':
'atom-text-editor':
'cmd-alt-a': 'ascii-art:convert'
```
Notice `.editor` on the first line. Just like CSS, keymap selectors *scope* key
Notice `atom-text-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
only active for elements matching the `atom-text-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
+4 -7
Ver Arquivo
@@ -4,11 +4,8 @@
# 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:
# An example hack to log to the console when each text editor is saved.
#
# path = require 'path'
#
# atom.workspaceView.eachEditorView (editorView) ->
# editor = editorView.getEditor()
# if path.extname(editor.getPath()) is '.md'
# editor.setSoftWrapped(true)
# atom.workspace.observeTextEditors (editor) ->
# editor.onDidSave ->
# console.log "Saved! #{editor.getPath()}"
+6 -2
Ver Arquivo
@@ -9,13 +9,17 @@
#
# Here's an example taken from Atom's built-in keymap:
#
# '.editor':
# 'atom-text-editor':
# 'enter': 'editor:newline'
#
# '.workspace':
# 'atom-workspace':
# 'ctrl-shift-p': 'core:move-up'
# 'ctrl-p': 'core:move-down'
#
# You can find more information about keymaps in these guides:
# * https://atom.io/docs/latest/customizing-atom#customizing-key-bindings
# * https://atom.io/docs/latest/advanced/keymaps
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it here:
# https://github.com/bevry/cson#what-is-cson
+3
Ver Arquivo
@@ -13,3 +13,6 @@
# 'prefix': 'log'
# 'body': 'console.log $1'
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it here:
# https://github.com/bevry/cson#what-is-cson
+2 -2
Ver Arquivo
@@ -12,10 +12,10 @@
}
.editor {
atom-text-editor {
}
.editor .cursor {
atom-text-editor .cursor {
}
+107 -16
Ver Arquivo
@@ -1,4 +1,5 @@
{Point, Range} = require 'text-buffer'
{Emitter, Disposable, CompositeDisposable} = require 'event-kit'
{deprecate} = require 'grim'
module.exports =
@@ -7,29 +8,119 @@ module.exports =
GitRepository: require '../src/git-repository'
Point: Point
Range: Range
Emitter: Emitter
Disposable: Disposable
CompositeDisposable: CompositeDisposable
# The following classes can't be used from a Task handler and should therefore
# only be exported when not running as a child node process
unless process.env.ATOM_SHELL_INTERNAL_RUN_AS_NODE
module.exports.Task = require '../src/task'
module.exports.TextEditor = require '../src/text-editor'
{$, $$, $$$, View} = require '../src/space-pen-extensions'
module.exports.$ = $
module.exports.$$ = $$
module.exports.$$$ = $$$
module.exports.TextEditorView = require '../src/text-editor-view'
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'
module.exports.React = require 'react-atom-fork'
module.exports.Reactionary = require 'reactionary-atom-fork'
Object.defineProperty module.exports, 'Workspace', get: ->
deprecate """
Requiring `Workspace` from `atom` is no longer supported.
If you need this, please open an issue on
https://github.com/atom/atom/issues/new
And let us know what you are using it for.
"""
require '../src/workspace'
Object.defineProperty module.exports, 'WorkspaceView', get: ->
deprecate """
Requiring `WorkspaceView` from `atom` is no longer supported.
Use `atom.view.getView(atom.workspace)` instead.
"""
require '../src/workspace-view'
Object.defineProperty module.exports, '$', get: ->
deprecate """
Requiring `$` from `atom` is no longer supported.
If you are using `space-pen`, please require `$` from `space-pen`. Otherwise require `jquery` instead:
`{$} = require 'space-pen'`
or
`$ = require 'jquery'`
Add `"space-pen": "^3"` to your package dependencies.
Or add `"jquery": "^2"` to your package dependencies.
"""
$
Object.defineProperty module.exports, '$$', get: ->
deprecate """
Requiring `$$` from `atom` is no longer supported.
Please require `space-pen` instead:
`{$$} = require 'space-pen'`
Add `"space-pen": "^3"` to your package dependencies.
"""
$$
Object.defineProperty module.exports, '$$$', get: ->
deprecate """
Requiring `$$$` from `atom` is no longer supported.
Please require `space-pen` instead:
`{$$$} = require 'space-pen'`
Add `"space-pen": "^3"` to your package dependencies.
"""
$$$
Object.defineProperty module.exports, 'View', get: ->
deprecate """
Requiring `View` from `atom` is no longer supported.
Please require `space-pen` instead:
`{View} = require 'space-pen'`
Add `"space-pen": "^3"` to your package dependencies.
"""
View
Object.defineProperty module.exports, 'EditorView', get: ->
deprecate """
Requiring `EditorView` from `atom` is no longer supported.
Please require `TextEditorView` from `atom-space-pen-view` instead:
`{TextEditorView} = require 'atom-space-pen-views'`
Add `"atom-space-pen-views": "^0"` to your package dependencies.
"""
require '../src/text-editor-view'
Object.defineProperty module.exports, 'TextEditorView', get: ->
deprecate """
Requiring `TextEditorView` from `atom` is no longer supported.
Please require `TextEditorView` from `atom-space-pen-view` instead:
`{TextEditorView} = require 'atom-space-pen-views'`
Add `"atom-space-pen-views": "^0"` to your package dependencies.
"""
require '../src/text-editor-view'
Object.defineProperty module.exports, 'ScrollView', get: ->
deprecate """
Requiring `ScrollView` from `atom` is no longer supported.
Please require `ScrollView` from `atom-space-pen-view` instead:
`{ScrollView} = require 'atom-space-pen-views'`
Note that the API has changed slightly! Please read the docs at https://github.com/atom/atom-space-pen-views
Add `"atom-space-pen-views": "^0"` to your package dependencies.
"""
require '../src/scroll-view'
Object.defineProperty module.exports, 'SelectListView', get: ->
deprecate """
Requiring `SelectListView` from `atom` is no longer supported.
Please require `SelectListView` from `atom-space-pen-view` instead:
`{SelectListView} = require 'atom-space-pen-views'`
Note that the API has changed slightly! Please read the docs at https://github.com/atom/atom-space-pen-views
Add `"atom-space-pen-views": "^0"` to your package dependencies.
"""
require '../src/select-list-view'
Object.defineProperty module.exports, 'React', get: ->
deprecate "Please require `react-atom-fork` instead: `React = require 'react-atom-fork'`. Add `\"react-atom-fork\": \"^0.11\"` to your package dependencies."
require 'react-atom-fork'
Object.defineProperty module.exports, 'Reactionary', get: ->
deprecate "Please require `reactionary` instead: `Reactionary = require 'reactionary'`. Add `\"reactionary\": \"^0.9\"` to your package dependencies."
require 'reactionary'
Object.defineProperty module.exports, 'Git', get: ->
deprecate "Please require `GitRepository` instead of `Git`: `{GitRepository} = require 'atom'`"
module.exports.GitRepository
Object.defineProperty module.exports, 'EditorView', get: ->
deprecate "Please require `TextEditorView` instead of `EditorView`: `{TextEditorView} = require 'atom'`"
module.exports.TextEditorView
+6 -3
Ver Arquivo
@@ -1,11 +1,11 @@
'.editor':
'atom-text-editor':
# Platform Bindings
'home': 'editor:move-to-first-character-of-line'
'end': 'editor:move-to-end-of-screen-line'
'shift-home': 'editor:select-to-first-character-of-line'
'shift-end': 'editor:select-to-end-of-line'
'.editor:not(.mini)':
'atom-text-editor:not([mini])':
# Atom Specific
'ctrl-C': 'editor:copy-path'
@@ -15,10 +15,13 @@
'shift-tab': 'editor:outdent-selected-rows'
'ctrl-K': 'editor:delete-line'
'.select-list atom-text-editor[mini]':
'enter': 'core:confirm'
'.tool-panel.panel-left, .tool-panel.panel-right':
'escape': 'tool-panel:unfocus'
'.editor !important, .editor.mini !important':
'atom-text-editor !important, atom-text-editor[mini] !important':
'escape': 'editor:consolidate-selections'
# allow standard input fields to work correctly
+5 -3
Ver Arquivo
@@ -29,6 +29,8 @@
'ctrl-alt-cmd-l': 'window:reload'
'alt-cmd-i': 'window:toggle-dev-tools'
'cmd-alt-ctrl-p': 'window:run-package-specs'
'ctrl-shift-left': 'pane:move-item-left'
'ctrl-shift-right': 'pane:move-item-right'
# Sublime Parity
'cmd-,': 'application:show-settings'
@@ -100,7 +102,7 @@
'cmd-8': 'pane:show-item-8'
'cmd-9': 'pane:show-item-9'
'.editor':
'atom-text-editor':
# Platform Bindings
'alt-left': 'editor:move-to-beginning-of-word'
'alt-right': 'editor:move-to-end-of-word'
@@ -110,7 +112,7 @@
# Apple Specific
'cmd-backspace': 'editor:delete-to-beginning-of-line'
'cmd-shift-backspace': 'editor:delete-to-beginning-of-line'
'cmd-delete': 'editor:delete-to-beginning-of-line'
'cmd-delete': 'editor:delete-to-end-of-line'
'ctrl-A': 'editor:select-to-first-character-of-line'
'ctrl-E': 'editor:select-to-end-of-line'
'cmd-left': 'editor:move-to-first-character-of-line'
@@ -134,7 +136,7 @@
'cmd-l': 'editor:select-line'
'ctrl-t': 'editor:transpose'
'.workspace .editor:not(.mini)':
'atom-workspace atom-text-editor:not([mini])':
# Atom specific
'alt-cmd-z': 'editor:checkout-head-revision'
'cmd-<': 'editor:scroll-to-cursor'
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
'.editor':
'atom-text-editor':
'alt-f': 'editor:move-to-end-of-word'
'alt-F': 'editor:select-to-end-of-word'
'alt-b': 'editor:move-to-beginning-of-word'
+4 -2
Ver Arquivo
@@ -12,6 +12,8 @@
'ctrl-alt-s': 'application:run-all-specs'
'ctrl-alt-o': 'application:open-dev'
'ctrl-shift-o': 'application:open-folder'
'ctrl-shift-pageup': 'pane:move-item-left'
'ctrl-shift-pagedown': 'pane:move-item-right'
'F11': 'window:toggle-full-screen'
# Sublime Parity
@@ -79,7 +81,7 @@
'alt-8': 'pane:show-item-8'
'alt-9': 'pane:show-item-9'
'.workspace .editor':
'atom-workspace atom-text-editor':
# Platform Bindings
'ctrl-left': 'editor:move-to-beginning-of-word'
'ctrl-right': 'editor:move-to-end-of-word'
@@ -99,7 +101,7 @@
'ctrl-k ctrl-l': 'editor:lower-case'
'ctrl-l': 'editor:select-line'
'.workspace .editor:not(.mini)':
'atom-workspace atom-text-editor:not([mini])':
# Atom specific
'alt-ctrl-z': 'editor:checkout-head-revision'
'ctrl-<': 'editor:scroll-to-cursor'
+6 -2
Ver Arquivo
@@ -14,6 +14,10 @@
'ctrl-alt-i': 'window:toggle-dev-tools'
'ctrl-alt-p': 'window:run-package-specs'
'ctrl-alt-s': 'application:run-all-specs'
'ctrl-alt-o': 'application:open-dev'
'ctrl-shift-o': 'application:open-folder'
'ctrl-shift-left': 'pane:move-item-left'
'ctrl-shift-right': 'pane:move-item-right'
'F11': 'window:toggle-full-screen'
# Sublime Parity
@@ -74,7 +78,7 @@
'ctrl-k ctrl-left': 'window:focus-pane-on-left'
'ctrl-k ctrl-right': 'window:focus-pane-on-right'
'.workspace .editor':
'atom-workspace atom-text-editor':
# Platform Bindings
'ctrl-left': 'editor:move-to-beginning-of-word'
'ctrl-right': 'editor:move-to-end-of-word'
@@ -94,7 +98,7 @@
'ctrl-k ctrl-l': 'editor:lower-case'
'ctrl-l': 'editor:select-line'
'.workspace .editor:not(.mini)':
'atom-workspace atom-text-editor:not([mini])':
# Atom specific
'alt-ctrl-z': 'editor:checkout-head-revision'
'ctrl-<': 'editor:scroll-to-cursor'
+7 -1
Ver Arquivo
@@ -190,6 +190,12 @@
submenu: [
{ label: 'Terms of Use', command: 'application:open-terms-of-use' }
{ label: 'Documentation', command: 'application:open-documentation' }
{ label: 'Roadmap', command: 'application:open-roadmap' }
{ label: 'Frequently Asked Questions', command: 'application:open-faq' }
{ type: 'separator' }
{ label: 'Community Discussions', command: 'application:open-discussions' }
{ label: 'Report Issue', command: 'application:report-issue' }
{ label: 'Search Issues', command: 'application:search-issues' }
{ type: 'separator' }
]
}
@@ -212,7 +218,7 @@
{label: 'Split Right', command: 'pane:split-right'}
{type: 'separator'}
]
'.pane': [
'atom-pane': [
{type: 'separator'}
{label: 'Split Up', command: 'pane:split-up'}
{label: 'Split Down', command: 'pane:split-down'}
+8 -1
Ver Arquivo
@@ -94,6 +94,7 @@
submenu: [
{ label: '&Reload', command: 'window:reload' }
{ label: 'Toggle &Full Screen', command: 'window:toggle-full-screen' }
{ label: 'Toggle Menu Bar', command: 'window:toggle-menu-bar' }
{
label: 'Developer'
submenu: [
@@ -147,6 +148,12 @@
{ label: "VERSION", enabled: false }
{ type: 'separator' }
{ label: '&Documentation', command: 'application:open-documentation' }
{ label: 'Roadmap', command: 'application:open-roadmap' }
{ label: 'Frequently Asked Questions', command: 'application:open-faq' }
{ type: 'separator' }
{ label: 'Community Discussions', command: 'application:open-discussions' }
{ label: 'Report Issue', command: 'application:report-issue' }
{ label: 'Search Issues', command: 'application:search-issues' }
{ type: 'separator' }
]
}
@@ -169,7 +176,7 @@
{label: 'Split Right', command: 'pane:split-right'}
{type: 'separator'}
]
'.pane': [
'atom-pane': [
{type: 'separator'}
{label: 'Split Up', command: 'pane:split-up'}
{label: 'Split Down', command: 'pane:split-down'}
+10 -3
Ver Arquivo
@@ -93,6 +93,7 @@
submenu: [
{ label: '&Reload', command: 'window:reload' }
{ label: 'Toggle &Full Screen', command: 'window:toggle-full-screen' }
{ label: 'Toggle Menu Bar', command: 'window:toggle-menu-bar' }
{
label: 'Panes'
submenu: [
@@ -109,7 +110,7 @@
{ label: 'Focus Pane On Left', command: 'window:focus-pane-on-left' }
{ label: 'Focus Pane On Right', command: 'window:focus-pane-on-right' }
{ type: 'separator' }
{ label: 'Close pane', command: 'pane:close' }
{ label: 'Close Pane', command: 'pane:close' }
]
}
{
@@ -162,9 +163,15 @@
submenu: [
{ label: 'View &Terms of Use', command: 'application:open-terms-of-use' }
{ label: 'View &License', command: 'application:open-license' }
{ label: "VERSION", enabled: false }
{ label: 'VERSION', enabled: false }
{ type: 'separator' }
{ label: '&Documentation', command: 'application:open-documentation' }
{ label: 'Roadmap', command: 'application:open-roadmap' }
{ label: 'Frequently Asked Questions', command: 'application:open-faq' }
{ type: 'separator' }
{ label: 'Community Discussions', command: 'application:open-discussions' }
{ label: 'Report Issue', command: 'application:report-issue' }
{ label: 'Search Issues', command: 'application:search-issues' }
{ type: 'separator' }
]
}
@@ -187,7 +194,7 @@
{label: 'Split Right', command: 'pane:split-right'}
{type: 'separator'}
]
'.pane': [
'atom-pane': [
{type: 'separator'}
{label: 'Split Up', command: 'pane:split-up'}
{label: 'Split Down', command: 'pane:split-down'}
+68 -66
Ver Arquivo
@@ -1,7 +1,7 @@
{
"name": "atom",
"productName": "Atom",
"version": "0.134.0",
"version": "0.149.0",
"description": "A hackable text editor for the 21st Century.",
"main": "./src/browser/main.js",
"repository": {
@@ -17,10 +17,10 @@
"url": "http://github.com/atom/atom/raw/master/LICENSE.md"
}
],
"atomShellVersion": "0.17.1",
"atomShellVersion": "0.19.2",
"dependencies": {
"async": "0.2.6",
"atom-keymap": "^2.2.0",
"atom-keymap": "^2.2.2",
"bootstrap": "git+https://github.com/atom/bootstrap.git#6af81906189f1747fd6c93479e3d998ebe041372",
"clear-cut": "0.4.0",
"coffee-script": "1.7.0",
@@ -32,114 +32,116 @@
"fs-plus": "^2.3.1",
"fstream": "0.1.24",
"fuzzaldrin": "^2.1",
"git-utils": "^2.1.4",
"git-utils": "^2.1.5",
"grim": "0.12.0",
"guid": "0.0.10",
"jasmine-json": "~0.0",
"jasmine-tagged": "^1.1.2",
"less-cache": "0.15.0",
"jquery": "^2.1.1",
"less-cache": "0.19.0",
"mixto": "^1",
"mkdirp": "0.3.5",
"nslog": "^1.0.1",
"oniguruma": "^3.0.4",
"optimist": "0.4.0",
"pathwatcher": "^2.1.3",
"pathwatcher": "^2.3.2",
"property-accessors": "^1",
"q": "^1.0.1",
"random-words": "0.0.1",
"react-atom-fork": "^0.11.1",
"reactionary-atom-fork": "^1.0.0",
"runas": "1.0.1",
"scandal": "1.0.2",
"scoped-property-store": "^0.9.0",
"scandal": "1.0.3",
"scoped-property-store": "^0.15.0",
"scrollbar-style": "^1.0.2",
"season": "^1.0.2",
"semver": "1.1.4",
"semver": "2.2.1",
"serializable": "^1",
"space-pen": "3.4.7",
"space-pen": "3.8.1",
"temp": "0.7.0",
"text-buffer": "^3.2.6",
"text-buffer": "^3.6.1",
"theorist": "^1.0.2",
"underscore-plus": "^1.5.1",
"underscore-plus": "^1.6.1",
"vm-compatibility-layer": "0.1.0"
},
"packageDependencies": {
"atom-dark-syntax": "0.19.0",
"atom-dark-ui": "0.35.0",
"atom-light-syntax": "0.20.0",
"atom-light-ui": "0.30.0",
"base16-tomorrow-dark-theme": "0.21.0",
"base16-tomorrow-light-theme": "0.4.0",
"solarized-dark-syntax": "0.22.0",
"solarized-light-syntax": "0.12.0",
"atom-dark-syntax": "0.22.0",
"atom-dark-ui": "0.39.0",
"atom-light-syntax": "0.22.0",
"atom-light-ui": "0.33.0",
"base16-tomorrow-dark-theme": "0.22.0",
"base16-tomorrow-light-theme": "0.5.0",
"solarized-dark-syntax": "0.23.0",
"solarized-light-syntax": "0.13.0",
"archive-view": "0.37.0",
"autocomplete": "0.32.0",
"autocomplete": "0.33.0",
"autoflow": "0.18.0",
"autosave": "0.17.0",
"autosave": "0.18.0",
"background-tips": "0.17.0",
"bookmarks": "0.28.0",
"bracket-matcher": "0.61.0",
"command-palette": "0.26.0",
"deprecation-cop": "0.10.0",
"dev-live-reload": "0.34.0",
"bookmarks": "0.30.0",
"bracket-matcher": "0.62.0",
"command-palette": "0.28.0",
"deprecation-cop": "0.14.0",
"dev-live-reload": "0.35.0",
"encoding-selector": "0.7.0",
"exception-reporting": "0.20.0",
"feedback": "0.33.0",
"find-and-replace": "0.139.0",
"fuzzy-finder": "0.58.0",
"git-diff": "0.39.0",
"go-to-line": "0.25.0",
"grammar-selector": "0.34.0",
"image-view": "0.37.0",
"incompatible-packages": "0.9.0",
"find-and-replace": "0.147.0",
"fuzzy-finder": "0.60.0",
"git-diff": "0.43.0",
"go-to-line": "0.26.0",
"grammar-selector": "0.37.0",
"image-view": "0.40.0",
"incompatible-packages": "0.10.0",
"keybinding-resolver": "0.20.0",
"link": "0.25.0",
"markdown-preview": "0.103.0",
"metrics": "0.36.0",
"link": "0.26.0",
"markdown-preview": "0.110.0",
"metrics": "0.39.0",
"open-on-github": "0.30.0",
"package-generator": "0.31.0",
"package-generator": "0.32.0",
"release-notes": "0.36.0",
"settings-view": "0.149.0",
"snippets": "0.53.0",
"spell-check": "0.42.0",
"status-bar": "0.45.0",
"settings-view": "0.161.0",
"snippets": "0.56.0",
"spell-check": "0.43.0",
"status-bar": "0.46.0",
"styleguide": "0.30.0",
"symbols-view": "0.66.0",
"tabs": "0.54.0",
"timecop": "0.22.0",
"tree-view": "0.127.0",
"symbols-view": "0.68.0",
"tabs": "0.56.0",
"timecop": "0.23.0",
"tree-view": "0.132.0",
"update-package-dependencies": "0.6.0",
"welcome": "0.18.0",
"whitespace": "0.25.0",
"wrap-guide": "0.22.0",
"language-c": "0.28.0",
"language-coffee-script": "0.35.0",
"language-css": "0.17.0",
"language-gfm": "0.50.0",
"welcome": "0.19.0",
"whitespace": "0.26.0",
"wrap-guide": "0.24.0",
"language-c": "0.31.0",
"language-coffee-script": "0.38.0",
"language-css": "0.23.0",
"language-gfm": "0.53.0",
"language-git": "0.9.0",
"language-go": "0.17.0",
"language-go": "0.19.0",
"language-html": "0.26.0",
"language-hyperlink": "0.12.0",
"language-java": "0.11.0",
"language-javascript": "0.40.0",
"language-javascript": "0.43.0",
"language-json": "0.8.0",
"language-less": "0.15.0",
"language-less": "0.18.0",
"language-make": "0.12.0",
"language-mustache": "0.10.0",
"language-objective-c": "0.11.0",
"language-perl": "0.9.0",
"language-php": "0.16.0",
"language-php": "0.18.0",
"language-property-list": "0.7.0",
"language-python": "0.19.0",
"language-ruby": "0.38.0",
"language-python": "0.24.0",
"language-ruby": "0.41.0",
"language-ruby-on-rails": "0.18.0",
"language-sass": "0.22.0",
"language-shellscript": "0.8.0",
"language-sass": "0.26.0",
"language-shellscript": "0.10.0",
"language-source": "0.8.0",
"language-sql": "0.11.0",
"language-text": "0.6.0",
"language-todo": "0.12.0",
"language-toml": "0.12.0",
"language-xml": "0.22.0",
"language-yaml": "0.17.0"
"language-todo": "0.13.0",
"language-toml": "0.14.0",
"language-xml": "0.24.0",
"language-yaml": "0.20.0"
},
"private": true,
"scripts": {
@@ -1,6 +1,7 @@
[Desktop Entry]
Name=Atom
Comment=<%= description %>
GenericName=Text Editor
Exec=<%= installDir %>/share/atom/atom %U
Icon=<%= iconName %>
Type=Application
+2 -1
Ver Arquivo
@@ -1,6 +1,7 @@
Package: <%= name %>
Version: <%= version %>
Depends: python (>= 2.6), libc6
Depends: gconf2, gconf-service, libgtk2.0-0, libudev0 | libudev1, libgcrypt11, libnotify4, libxtst6, libnss3, python, gvfs-bin, xdg-utils
Suggests: libgnome-keyring0, gir1.2-gnomekeyring-1.0
Section: <%= section %>
Priority: optional
Architecture: <%= arch %>
+26
Ver Arquivo
@@ -0,0 +1,26 @@
Name: <%= name %>
Version: <%= version %>
Release: 0.1%{?dist}
Summary: Atom is a hackable text editor for the 21st century
License: MIT
URL: https://atom.io/
AutoReqProv: no # Avoid libchromiumcontent.so missing dependency
%description
<%= description %>
%install
mkdir -p %{buildroot}/usr/local/share/atom
cp -r /tmp/atom-build/Atom/* %{buildroot}/usr/local/share/atom
mkdir -p %{buildroot}/usr/local/bin/
ln -sf /usr/local/share/atom/resources/app/apm/node_modules/.bin/apm %{buildroot}/usr/local/bin/apm
cp atom.sh %{buildroot}/usr/local/bin/atom
chmod 755 atom.sh
mkdir -p %{buildroot}/usr/local/share/applications/
mv atom.desktop %{buildroot}/usr/local/share/applications/
%files
/usr/local/bin/atom
/usr/local/bin/apm
/usr/local/share/atom/
/usr/local/share/applications/atom.desktop
Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 274 KiB

Arquivo executável
+10
Ver Arquivo
@@ -0,0 +1,10 @@
#!/bin/bash
set -e
docker build -t atom-rpm .
docker run \
--env JANKY_SHA1="$JANKY_SHA1" \
--env JANKY_BRANCH="$JANKY_BRANCH" \
--env ATOM_ACCESS_TOKEN="$BUILD_ATOM_RPM_ACCESS_TOKEN" \
atom-rpm /atom/script/rpmbuild
+1 -1
Ver Arquivo
@@ -15,4 +15,4 @@ if [%2] == [] (
if exist %2 rmdir %2 /s /q
:: cp -rf %1 %2
xcopy %1 %2 /e /h /c /i /y /r
(robocopy %1 %2 /e) ^& IF %ERRORLEVEL% LEQ 1 exit 0
Arquivo executável
+22
Ver Arquivo
@@ -0,0 +1,22 @@
#!/bin/bash
set -e
SPEC_FILE="$1"
DESKTOP_FILE="$2"
BUILD_DIRECTORY="$3"
RPM_BUILD_ROOT=~/rpmbuild
ARCH=`uname -m`
rpmdev-setuptree
cp -r $BUILD_DIRECTORY/Atom/* $RPM_BUILD_ROOT/BUILD
cp $SPEC_FILE $RPM_BUILD_ROOT/SPECS
cp ./atom.sh $RPM_BUILD_ROOT/BUILD
cp $DESKTOP_FILE $RPM_BUILD_ROOT/BUILD
rpmbuild -ba $SPEC_FILE
cp $RPM_BUILD_ROOT/RPMS/$ARCH/atom-*.rpm $BUILD_DIRECTORY/rpm
rm -rf $RPM_BUILD_ROOT
Arquivo executável
+6
Ver Arquivo
@@ -0,0 +1,6 @@
#!/bin/sh
set -e
script/build
script/grunt mkrpm publish-build --stack
+3
Ver Arquivo
@@ -34,6 +34,9 @@ exports.safeSpawn = function(command, args, options, callback) {
var child = childProcess.spawn(command, args, options);
child.stderr.pipe(process.stderr);
child.stdout.pipe(process.stdout);
child.on('error', function(error) {
console.error('Command \'' + command + '\' failed: ' + error.message);
});
child.on('exit', function(code) {
if (code != 0)
process.exit(code);
+70 -1
Ver Arquivo
@@ -6,7 +6,7 @@ ThemeManager = require '../src/theme-manager'
describe "the `atom` global", ->
beforeEach ->
atom.workspaceView = atom.workspace.getView(atom.workspace).__spacePenView
atom.workspaceView = atom.views.getView(atom.workspace).__spacePenView
describe 'window sizing methods', ->
describe '::getPosition and ::setPosition', ->
@@ -52,3 +52,72 @@ describe "the `atom` global", ->
it 'loads the default core config', ->
expect(atom.config.get('core.excludeVcsIgnoredPaths')).toBe true
expect(atom.config.get('editor.showInvisibles')).toBe false
describe "window onerror handler", ->
beforeEach ->
spyOn atom, 'openDevTools'
spyOn atom, 'executeJavaScriptInDevTools'
it "will open the dev tools when an error is triggered", ->
try
a + 1
catch e
window.onerror.call(window, e.toString(), 'abc', 2, 3, e)
expect(atom.openDevTools).toHaveBeenCalled()
expect(atom.executeJavaScriptInDevTools).toHaveBeenCalled()
describe "::onWillThrowError", ->
willThrowSpy = null
beforeEach ->
willThrowSpy = jasmine.createSpy()
it "is called when there is an error", ->
error = null
atom.onWillThrowError(willThrowSpy)
try
a + 1
catch e
error = e
window.onerror.call(window, e.toString(), 'abc', 2, 3, e)
delete willThrowSpy.mostRecentCall.args[0].preventDefault
expect(willThrowSpy).toHaveBeenCalledWith
message: error.toString()
url: 'abc'
line: 2
column: 3
originalError: error
it "will not show the devtools when preventDefault() is called", ->
willThrowSpy.andCallFake (errorObject) -> errorObject.preventDefault()
atom.onWillThrowError(willThrowSpy)
try
a + 1
catch e
window.onerror.call(window, e.toString(), 'abc', 2, 3, e)
expect(willThrowSpy).toHaveBeenCalled()
expect(atom.openDevTools).not.toHaveBeenCalled()
expect(atom.executeJavaScriptInDevTools).not.toHaveBeenCalled()
describe "::onDidThrowError", ->
didThrowSpy = null
beforeEach ->
didThrowSpy = jasmine.createSpy()
it "is called when there is an error", ->
error = null
atom.onDidThrowError(didThrowSpy)
try
a + 1
catch e
error = e
window.onerror.call(window, e.toString(), 'abc', 2, 3, e)
expect(didThrowSpy).toHaveBeenCalledWith
message: error.toString()
url: 'abc'
line: 2
column: 3
originalError: error
+1 -1
Ver Arquivo
@@ -20,7 +20,7 @@ describe "install(commandPath, callback)", ->
installDone = false
installError = null
installer.install commandFilePath, false, (error) ->
installer.createSymlink commandFilePath, false, (error) ->
installDone = true
installError = error
+32 -5
Ver Arquivo
@@ -1,4 +1,5 @@
CommandRegistry = require '../src/command-registry'
_ = require 'underscore-plus'
describe "CommandRegistry", ->
[registry, parent, child, grandchild] = []
@@ -14,9 +15,12 @@ describe "CommandRegistry", ->
parent.appendChild(child)
document.querySelector('#jasmine-content').appendChild(parent)
registry = new CommandRegistry(parent)
registry = new CommandRegistry
describe "command dispatch", ->
afterEach ->
registry.destroy()
describe "when a command event is dispatched on an element", ->
it "invokes callbacks with selectors matching the target", ->
called = false
registry.add '.grandchild', 'command', (event) ->
@@ -48,6 +52,16 @@ describe "CommandRegistry", ->
grandchild.dispatchEvent(new CustomEvent('command', bubbles: true))
expect(calls).toEqual ['child', 'parent']
it "invokes inline listeners prior to listeners applied via selectors", ->
calls = []
registry.add '.grandchild', 'command', -> calls.push('grandchild')
registry.add child, 'command', -> calls.push('child-inline')
registry.add '.child', 'command', -> calls.push('child')
registry.add '.parent', 'command', -> calls.push('parent')
grandchild.dispatchEvent(new CustomEvent('command', bubbles: true))
expect(calls).toEqual ['grandchild', 'child-inline', 'child', 'parent']
it "orders multiple matching listeners for an element by selector specificity", ->
child.classList.add('foo', 'bar')
calls = []
@@ -86,8 +100,6 @@ describe "CommandRegistry", ->
expect(dispatchedEvent.stopImmediatePropagation).toHaveBeenCalled()
it "forwards .preventDefault() calls from the synthetic event to the original", ->
calls = []
registry.add '.child', 'command', (event) -> event.preventDefault()
dispatchedEvent = new CustomEvent('command', bubbles: true)
@@ -95,6 +107,14 @@ describe "CommandRegistry", ->
grandchild.dispatchEvent(dispatchedEvent)
expect(dispatchedEvent.preventDefault).toHaveBeenCalled()
it "forwards .abortKeyBinding() calls from the synthetic event to the original", ->
registry.add '.child', 'command', (event) -> event.abortKeyBinding()
dispatchedEvent = new CustomEvent('command', bubbles: true)
dispatchedEvent.abortKeyBinding = jasmine.createSpy('abortKeyBinding')
grandchild.dispatchEvent(dispatchedEvent)
expect(dispatchedEvent.abortKeyBinding).toHaveBeenCalled()
it "allows listeners to be removed via a disposable returned by ::add", ->
calls = []
@@ -135,8 +155,15 @@ describe "CommandRegistry", ->
registry.add '.grandchild', 'namespace:command-3', ->
registry.add '.grandchild.no-match', 'namespace:command-4', ->
expect(registry.findCommands(target: grandchild)[0..2]).toEqual [
registry.add grandchild, 'namespace:inline-command-1', ->
registry.add child, 'namespace:inline-command-2', ->
commands = registry.findCommands(target: grandchild)
nonJqueryCommands = _.reject commands, (cmd) -> cmd.jQuery
expect(nonJqueryCommands).toEqual [
{name: 'namespace:inline-command-1', displayName: 'Namespace: Inline Command 1'}
{name: 'namespace:command-3', displayName: 'Namespace: Command 3'}
{name: 'namespace:inline-command-2', displayName: 'Namespace: Inline Command 2'}
{name: 'namespace:command-2', displayName: 'Namespace: Command 2'}
{name: 'namespace:command-1', displayName: 'Namespace: Command 1'}
]
+348 -4
Ver Arquivo
@@ -88,6 +88,19 @@ describe "Config", ->
expect(atom.config.getDefault('foo.bar')).toEqual initialDefaultValue
expect(atom.config.getDefault('foo.bar')).not.toBe initialDefaultValue
describe "when scoped settings are used", ->
it "returns the global default when no scoped default set", ->
atom.config.setDefaults("foo", bar: baz: 10)
expect(atom.config.getDefault('.source.coffee', 'foo.bar.baz')).toBe 10
it "returns the scoped default when a scoped default is set", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: baz: 42)
expect(atom.config.getDefault('.source.coffee', 'foo.bar.baz')).toBe 42
atom.config.set('.source.coffee', 'foo.bar.baz', 55)
expect(atom.config.getDefault('.source.coffee', 'foo.bar.baz')).toBe 42
describe ".isDefault(keyPath)", ->
it "returns true when the value of the key path is its default value", ->
atom.config.setDefaults("foo", same: 1, changes: 1)
@@ -99,6 +112,21 @@ describe "Config", ->
expect(atom.config.isDefault('foo.same')).toBe false
expect(atom.config.isDefault('foo.changes')).toBe false
describe "when scoped settings are used", ->
it "returns false when a scoped setting was set by the user", ->
expect(atom.config.isDefault('.source.coffee', 'foo.bar.baz')).toBe true
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: baz: 42)
expect(atom.config.isDefault('.source.coffee', 'foo.bar.baz')).toBe true
atom.config.set('.source.coffee', 'foo.bar.baz', 55)
expect(atom.config.isDefault('.source.coffee', 'foo.bar.baz')).toBe false
describe ".setDefaults(keyPath)", ->
it "sets a default when the setting's key contains an escaped dot", ->
atom.config.setDefaults("foo", 'a\\.b': 1, b: 2)
expect(atom.config.get("foo")).toEqual 'a\\.b': 1, b: 2
describe ".toggle(keyPath)", ->
it "negates the boolean value of the current key path value", ->
atom.config.set('foo.a', 1)
@@ -130,6 +158,112 @@ describe "Config", ->
atom.config.restoreDefault('a.c')
expect(atom.config.get('a.c')).toBeUndefined()
it "calls ::save()", ->
atom.config.setDefaults('a', b: 3)
atom.config.set('a.b', 4)
atom.config.save.reset()
atom.config.restoreDefault('a.c')
expect(atom.config.save.callCount).toBe 1
describe "when scoped settings are used", ->
it "restores the global default when no scoped default set", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.set('.source.coffee', 'foo.bar.baz', 55)
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 55
atom.config.restoreDefault('.source.coffee', 'foo.bar.baz')
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 10
it "restores the scoped default when a scoped default is set", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: baz: 42)
atom.config.set('.source.coffee', 'foo.bar.baz', 55)
atom.config.set('.source.coffee', 'foo.bar.ok', 100)
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 55
atom.config.restoreDefault('.source.coffee', 'foo.bar.baz')
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 42
expect(atom.config.get(['.source.coffee'], 'foo.bar.ok')).toBe 100
it "calls ::save()", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: baz: 42)
atom.config.set('.source.coffee', 'foo.bar.baz', 55)
atom.config.save.reset()
atom.config.restoreDefault('.source.coffee', 'foo.bar.baz')
expect(atom.config.save.callCount).toBe 1
it "does not call ::save or add a scoped property when no value has been set", ->
# see https://github.com/atom/atom/issues/4175
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.restoreDefault('.source.coffee', 'foo.bar.baz')
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 10
expect(atom.config.save).not.toHaveBeenCalled()
scopedProperties = atom.config.scopedSettingsStore.propertiesForSource('user-config')
expect(scopedProperties['.coffee.source']).toBeUndefined()
it "removes the scoped value when it was the only set value on the object", ->
spyOn(CSON, 'writeFileSync')
jasmine.unspy atom.config, 'save'
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.set('.source.coffee', 'foo.bar.baz', 55)
atom.config.set('.source.coffee', 'foo.bar.zfoo', 20)
CSON.writeFileSync.reset()
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 55
atom.config.restoreDefault('.source.coffee', 'foo.bar.baz')
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 10
expect(atom.config.get(['.source.coffee'], 'foo.bar.zfoo')).toBe 20
expect(CSON.writeFileSync).toHaveBeenCalled()
properties = CSON.writeFileSync.mostRecentCall.args[1]
expect(properties['.coffee.source']).toEqual
foo:
bar:
zfoo: 20
CSON.writeFileSync.reset()
atom.config.restoreDefault('.source.coffee', 'foo.bar.zfoo')
expect(CSON.writeFileSync).toHaveBeenCalled()
properties = CSON.writeFileSync.mostRecentCall.args[1]
expect(properties['.coffee.source']).toBeUndefined()
it "does not call ::save when the value is already at the default", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.set('.source.coffee', 'foo.bar.baz', 55)
atom.config.save.reset()
atom.config.restoreDefault('.source.coffee', 'foo.bar.ok')
expect(atom.config.save).not.toHaveBeenCalled()
expect(atom.config.get(['.source.coffee'], 'foo.bar.baz')).toBe 55
describe ".getSettings()", ->
it "returns all settings including defaults", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.set("foo.ok", 12)
expect(atom.config.getSettings().foo).toEqual
ok: 12
bar:
baz: 10
describe "when scoped settings are used", ->
it "returns all the scoped settings including all the defaults", ->
atom.config.setDefaults("foo", bar: baz: 10)
atom.config.set("foo.ok", 12)
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: baz: 42)
atom.config.addScopedSettings("default", ".source.coffee", foo: bar: omg: 'omg')
expect(atom.config.getSettings(".source.coffee").foo).toEqual
ok: 12
bar:
baz: 42
omg: 'omg'
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"])
@@ -200,7 +334,7 @@ describe "Config", ->
expect(CSON.writeFileSync.argsForCall[0][0]).toBe(path.join(atom.config.configDirPath, "atom.config.json"))
writtenConfig = CSON.writeFileSync.argsForCall[0][1]
expect(writtenConfig).toBe atom.config.settings
expect(writtenConfig).toEqual global: atom.config.settings
describe "when ~/.atom/config.json doesn't exist", ->
it "writes any non-default properties to ~/.atom/config.cson", ->
@@ -214,9 +348,29 @@ describe "Config", ->
atom.config.save()
expect(CSON.writeFileSync.argsForCall[0][0]).toBe(path.join(atom.config.configDirPath, "atom.config.cson"))
CoffeeScript = require 'coffee-script'
writtenConfig = CSON.writeFileSync.argsForCall[0][1]
expect(writtenConfig).toEqual atom.config.settings
expect(writtenConfig).toEqual global: atom.config.settings
describe "when scoped settings are defined", ->
it 'writes out explicitly set config settings', ->
atom.config.set('.source.ruby', 'foo.bar', 'ruby')
atom.config.set('.source.ruby', 'foo.omg', 'wow')
atom.config.set('.source.coffee', 'foo.bar', 'coffee')
CSON.writeFileSync.reset()
atom.config.save()
writtenConfig = CSON.writeFileSync.argsForCall[0][1]
expect(writtenConfig).toEqualJson
global:
atom.config.settings
'.ruby.source':
foo:
bar: 'ruby'
omg: 'wow'
'.coffee.source':
foo:
bar: 'coffee'
describe ".setDefaults(keyPath, defaults)", ->
it "assigns any previously-unassigned keys to the object at the key path", ->
@@ -320,6 +474,14 @@ describe "Config", ->
atom.config.set('foo.bar.baz', "value 2")
expect(observeHandler).not.toHaveBeenCalled()
it 'does not fire the callback for a similarly named keyPath', ->
bazCatHandler = jasmine.createSpy("bazCatHandler")
observeSubscription = atom.config.observe "foo.bar.bazCat", bazCatHandler
bazCatHandler.reset()
atom.config.set('foo.bar.baz', "value 10")
expect(bazCatHandler).not.toHaveBeenCalled()
describe ".initializeConfigDirectory()", ->
beforeEach ->
if fs.existsSync(dotAtomPath)
@@ -356,6 +518,23 @@ describe "Config", ->
afterEach ->
fs.removeSync(dotAtomPath)
describe "when the config file contains scoped settings", ->
beforeEach ->
fs.writeFileSync atom.config.configFilePath, """
global:
foo:
bar: 'baz'
'.source.ruby':
foo:
bar: 'more-specific'
"""
atom.config.loadUserConfig()
it "updates the config data based on the file contents", ->
expect(atom.config.get("foo.bar")).toBe 'baz'
expect(atom.config.get(['.source.ruby'], "foo.bar")).toBe 'more-specific'
describe "when the config file contains valid cson", ->
beforeEach ->
fs.writeFileSync(atom.config.configFilePath, "foo: bar: 'baz'")
@@ -430,7 +609,15 @@ describe "Config", ->
atom.config.configDirPath = dotAtomPath
atom.config.configFilePath = path.join(atom.config.configDirPath, "atom.config.cson")
expect(fs.existsSync(atom.config.configDirPath)).toBeFalsy()
fs.writeFileSync(atom.config.configFilePath, "foo: bar: 'baz'")
fs.writeFileSync atom.config.configFilePath, """
global:
foo:
bar: 'baz'
scoped: false
'.source.ruby':
foo:
scoped: true
"""
atom.config.loadUserConfig()
atom.config.observeUserConfig()
updatedHandler = jasmine.createSpy("updatedHandler")
@@ -474,6 +661,38 @@ describe "Config", ->
expect(atom.config.get('foo.bar')).toEqual ['baz', 'ok']
expect(atom.config.get('foo.omg')).toBe 'another'
describe 'when scoped settings are used', ->
it "fires a change event for scoped settings that are removed", ->
atom.config.onDidChange ['.source.ruby'], 'foo.scoped', scopedSpy = jasmine.createSpy()
fs.writeFileSync atom.config.configFilePath, """
global:
foo:
scoped: false
"""
waitsFor 'update event', -> updatedHandler.callCount > 0
runs ->
expect(scopedSpy).toHaveBeenCalled()
expect(atom.config.get(['.source.ruby'], 'foo.scoped')).toBe false
it "does not fire a change event for paths that did not change", ->
atom.config.onDidChange ['.source.ruby'], 'foo.scoped', noChangeSpy = jasmine.createSpy()
fs.writeFileSync atom.config.configFilePath, """
global:
foo:
bar: 'baz'
'.source.ruby':
foo:
scoped: true
"""
waitsFor 'update event', -> updatedHandler.callCount > 0
runs ->
expect(noChangeSpy).not.toHaveBeenCalled()
expect(atom.config.get(['.source.ruby'], 'foo.bar')).toBe 'baz'
expect(atom.config.get(['.source.ruby'], 'foo.scoped')).toBe true
describe "when the config file changes to omit a setting with a default", ->
it "resets the setting back to the default", ->
fs.writeFileSync(atom.config.configFilePath, "foo: { baz: 'new'}")
@@ -862,3 +1081,128 @@ describe "Config", ->
expect(atom.config.set('foo.bar.arr', ['two', 'three'])).toBe true
expect(atom.config.get('foo.bar.arr')).toEqual ['two', 'three']
describe "when scoped settings are used", ->
beforeEach ->
schema =
type: 'string'
default: 'ok'
scopes:
'.source.js':
default: 'omg'
atom.config.setSchema('foo.bar.str', schema)
it 'it respects the scoped defaults', ->
expect(atom.config.get('foo.bar.str')).toBe 'ok'
expect(atom.config.get(['.source.js'], 'foo.bar.str')).toBe 'omg'
expect(atom.config.get(['.source.coffee'], 'foo.bar.str')).toBe 'ok'
describe "scoped settings", ->
describe ".get(scopeDescriptor, keyPath)", ->
it "returns the property with the most specific scope selector", ->
atom.config.addScopedSettings("config", ".source.coffee .string.quoted.double.coffee", foo: bar: baz: 42)
atom.config.addScopedSettings("config", ".source .string.quoted.double", foo: bar: baz: 22)
atom.config.addScopedSettings("config", ".source", foo: bar: baz: 11)
expect(atom.config.get([".source.coffee", ".string.quoted.double.coffee"], "foo.bar.baz")).toBe 42
expect(atom.config.get([".source.js", ".string.quoted.double.js"], "foo.bar.baz")).toBe 22
expect(atom.config.get([".source.js", ".variable.assignment.js"], "foo.bar.baz")).toBe 11
expect(atom.config.get([".text"], "foo.bar.baz")).toBeUndefined()
it "favors the most recently added properties in the event of a specificity tie", ->
atom.config.addScopedSettings("config", ".source.coffee .string.quoted.single", foo: bar: baz: 42)
atom.config.addScopedSettings("config", ".source.coffee .string.quoted.double", foo: bar: baz: 22)
expect(atom.config.get([".source.coffee", ".string.quoted.single"], "foo.bar.baz")).toBe 42
expect(atom.config.get([".source.coffee", ".string.quoted.single.double"], "foo.bar.baz")).toBe 22
describe 'when there are global defaults', ->
it 'falls back to the global when there is no scoped property specified', ->
atom.config.setDefaults("foo", hasDefault: 'ok')
expect(atom.config.get([".source.coffee", ".string.quoted.single"], "foo.hasDefault")).toBe 'ok'
describe 'setting priority', ->
describe 'when package settings are added after user settings', ->
it "returns the user's setting because the user's setting has higher priority", ->
atom.config.set(".source.coffee", "foo.bar.baz", 100)
atom.config.addScopedSettings("some-package", ".source.coffee", foo: bar: baz: 1)
expect(atom.config.get([".source.coffee"], "foo.bar.baz")).toBe 100
describe ".set(scope, keyPath, value)", ->
it "sets the value and overrides the others", ->
atom.config.addScopedSettings("config", ".source.coffee .string.quoted.double.coffee", foo: bar: baz: 42)
atom.config.addScopedSettings("config", ".source .string.quoted.double", foo: bar: baz: 22)
atom.config.addScopedSettings("config", ".source", foo: bar: baz: 11)
expect(atom.config.get([".source.coffee", ".string.quoted.double.coffee"], "foo.bar.baz")).toBe 42
expect(atom.config.set(".source.coffee .string.quoted.double.coffee", "foo.bar.baz", 100)).toBe true
expect(atom.config.get([".source.coffee", ".string.quoted.double.coffee"], "foo.bar.baz")).toBe 100
describe ".removeScopedSettingsForName(name)", ->
it "allows properties to be removed by name", ->
disposable1 = atom.config.addScopedSettings("a", ".source.coffee .string.quoted.double.coffee", foo: bar: baz: 42)
disposable2 = atom.config.addScopedSettings("b", ".source .string.quoted.double", foo: bar: baz: 22)
disposable2.dispose()
expect(atom.config.get([".source.js", ".string.quoted.double.js"], "foo.bar.baz")).toBeUndefined()
expect(atom.config.get([".source.coffee", ".string.quoted.double.coffee"], "foo.bar.baz")).toBe 42
describe ".observe(scopeDescriptor, keyPath)", ->
it 'calls the supplied callback when the value at the descriptor/keypath changes', ->
atom.config.observe [".source.coffee", ".string.quoted.double.coffee"], "foo.bar.baz", changeSpy = jasmine.createSpy()
expect(changeSpy).toHaveBeenCalledWith(undefined)
changeSpy.reset()
atom.config.set("foo.bar.baz", 12)
expect(changeSpy).toHaveBeenCalledWith(12)
changeSpy.reset()
disposable1 = atom.config.addScopedSettings("a", ".source .string.quoted.double", foo: bar: baz: 22)
expect(changeSpy).toHaveBeenCalledWith(22)
changeSpy.reset()
disposable2 = atom.config.addScopedSettings("b", ".source.coffee .string.quoted.double.coffee", foo: bar: baz: 42)
expect(changeSpy).toHaveBeenCalledWith(42)
changeSpy.reset()
disposable2.dispose()
expect(changeSpy).toHaveBeenCalledWith(22)
changeSpy.reset()
disposable1.dispose()
expect(changeSpy).toHaveBeenCalledWith(12)
changeSpy.reset()
atom.config.set("foo.bar.baz", undefined)
expect(changeSpy).toHaveBeenCalledWith(undefined)
changeSpy.reset()
describe ".onDidChange(scopeDescriptor, keyPath)", ->
it 'calls the supplied callback when the value at the descriptor/keypath changes', ->
keyPath = "foo.bar.baz"
atom.config.onDidChange [".source.coffee", ".string.quoted.double.coffee"], keyPath, changeSpy = jasmine.createSpy()
atom.config.set("foo.bar.baz", 12)
expect(changeSpy).toHaveBeenCalledWith({oldValue: undefined, newValue: 12, keyPath})
changeSpy.reset()
disposable1 = atom.config.addScopedSettings("a", ".source .string.quoted.double", foo: bar: baz: 22)
expect(changeSpy).toHaveBeenCalledWith({oldValue: 12, newValue: 22, keyPath})
changeSpy.reset()
disposable2 = atom.config.addScopedSettings("b", ".source.coffee .string.quoted.double.coffee", foo: bar: baz: 42)
expect(changeSpy).toHaveBeenCalledWith({oldValue: 22, newValue: 42, keyPath})
changeSpy.reset()
disposable2.dispose()
expect(changeSpy).toHaveBeenCalledWith({oldValue: 42, newValue: 22, keyPath})
changeSpy.reset()
disposable1.dispose()
expect(changeSpy).toHaveBeenCalledWith({oldValue: 22, newValue: 12, keyPath})
changeSpy.reset()
atom.config.set("foo.bar.baz", undefined)
expect(changeSpy).toHaveBeenCalledWith({oldValue: 12, newValue: undefined, keyPath})
changeSpy.reset()
+22
Ver Arquivo
@@ -150,3 +150,25 @@ describe "ContextMenuManager", ->
shouldDisplay = false
expect(contextMenu.templateForEvent(dispatchedEvent)).toEqual []
it "allows items to be specified in the legacy format for now", ->
contextMenu.add '.parent':
'A': 'a'
'Separator 1': '-'
'B':
'C': 'c'
'Separator 2': '-'
'D': 'd'
expect(contextMenu.templateForElement(parent)).toEqual [
{label: 'A', command: 'a'}
{type: 'separator'}
{
label: 'B'
submenu: [
{label: 'C', command: 'c'}
{type: 'separator'}
{label: 'D', command: 'd'}
]
}
]
+5
Ver Arquivo
@@ -56,6 +56,11 @@ describe "DisplayBuffer", ->
buffer.delete([[8, 0], [10, 0]])
expect(displayBuffer.getScrollTop()).toBe 60
it "updates the display buffer prior to invoking change handlers registered on the buffer", ->
buffer.onDidChange -> expect(displayBuffer2.tokenizedLineForScreenRow(0).text).toBe "testing"
displayBuffer2 = new DisplayBuffer({buffer, tabLength})
buffer.setText("testing")
describe "soft wrapping", ->
beforeEach ->
displayBuffer.setSoftWrapped(true)
+3
Ver Arquivo
@@ -0,0 +1,3 @@
{
"foo": "bar"
}
@@ -6,7 +6,7 @@ module.exports =
activate: ->
@activateCallCount++
atom.commands.add '.workspace', 'activation-command', =>
atom.commands.add 'atom-workspace', 'activation-command', =>
@activationCommandCallCount++
atom.workspaceView.getActiveView()?.command 'activation-command', =>
@@ -1,5 +1,5 @@
{
"name": "no events",
"version": "0.1.0",
"activationCommands": {".workspace": []}
"activationCommands": {"atom-workspace": []}
}
@@ -0,0 +1 @@
a { color: red }
@@ -1,6 +1,6 @@
@import "ui-variables";
.editor {
atom-text-editor {
padding-top: @component-padding;
padding-right: @component-padding;
padding-bottom: @component-padding;
+1 -1
Ver Arquivo
@@ -1,3 +1,3 @@
.editor {
atom-text-editor {
padding-top: 1234px;
}
+1 -1
Ver Arquivo
@@ -1,5 +1,5 @@
@padding: 4321px;
.editor {
atom-text-editor {
padding-top: @padding;
}
@@ -1,4 +1,4 @@
.editor {
atom-text-editor {
padding-top: 101px;
padding-right: 101px;
padding-bottom: 101px;
@@ -1,4 +1,4 @@
.editor {
atom-text-editor {
/* padding-top: 103px;
padding-right: 103px;*/
padding-bottom: 103px;
@@ -1,6 +1,6 @@
@number: 102px;
.editor {
atom-text-editor {
/* padding-top: 102px;*/
padding-right: @number;
padding-bottom: @number;
@@ -0,0 +1,4 @@
{
"theme": "syntax",
"stylesheets": ["editor.less"]
}
@@ -1,6 +1,6 @@
@import "ui-variables";
.editor {
atom-text-editor {
padding-top: @component-padding;
padding-right: @component-padding;
padding-bottom: @component-padding;
@@ -1,4 +1,4 @@
.editor {
atom-text-editor {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
@@ -1,4 +1,4 @@
.editor {
atom-text-editor {
padding-right: 20px;
padding-bottom: 20px;
}
@@ -1,5 +1,5 @@
@number: 30px;
.editor {
atom-text-editor {
padding-bottom: @number;
}
@@ -1,4 +1,4 @@
.editor {
atom-text-editor {
padding-top: 100px;
padding-right: 100px;
padding-bottom: 100px;
1 .editor { atom-text-editor {
2 padding-top: 100px; padding-top: 100px;
3 padding-right: 100px; padding-right: 100px;
4 padding-bottom: 100px; padding-bottom: 100px;
+6 -6
Ver Arquivo
@@ -223,7 +223,7 @@ describe "GitRepository", ->
[editor] = []
beforeEach ->
atom.project.setPath(copyRepository())
atom.project.setPaths([copyRepository()])
waitsForPromise ->
atom.workspace.open('other.txt').then (o) -> editor = o
@@ -232,7 +232,7 @@ describe "GitRepository", ->
editor.insertNewline()
statusHandler = jasmine.createSpy('statusHandler')
atom.project.getRepo().onDidChangeStatus statusHandler
atom.project.getRepositories()[0].onDidChangeStatus statusHandler
editor.save()
expect(statusHandler.callCount).toBe 1
expect(statusHandler).toHaveBeenCalledWith {path: editor.getPath(), pathStatus: 256}
@@ -241,7 +241,7 @@ describe "GitRepository", ->
fs.writeFileSync(editor.getPath(), 'changed')
statusHandler = jasmine.createSpy('statusHandler')
atom.project.getRepo().onDidChangeStatus statusHandler
atom.project.getRepositories()[0].onDidChangeStatus statusHandler
editor.getBuffer().reload()
expect(statusHandler.callCount).toBe 1
expect(statusHandler).toHaveBeenCalledWith {path: editor.getPath(), pathStatus: 256}
@@ -252,7 +252,7 @@ describe "GitRepository", ->
fs.writeFileSync(editor.getPath(), 'changed')
statusHandler = jasmine.createSpy('statusHandler')
atom.project.getRepo().onDidChangeStatus statusHandler
atom.project.getRepositories()[0].onDidChangeStatus statusHandler
editor.getBuffer().emitter.emit 'did-change-path'
expect(statusHandler.callCount).toBe 1
expect(statusHandler).toHaveBeenCalledWith {path: editor.getPath(), pathStatus: 256}
@@ -266,7 +266,7 @@ describe "GitRepository", ->
project2?.destroy()
it "subscribes to all the serialized buffers in the project", ->
atom.project.setPath(copyRepository())
atom.project.setPaths([copyRepository()])
waitsForPromise ->
atom.workspace.open('file.txt')
@@ -283,7 +283,7 @@ describe "GitRepository", ->
buffer.append('changes')
statusHandler = jasmine.createSpy('statusHandler')
project2.getRepo().onDidChangeStatus statusHandler
project2.getRepositories()[0].onDidChangeStatus statusHandler
buffer.save()
expect(statusHandler.callCount).toBe 1
expect(statusHandler).toHaveBeenCalledWith {path: buffer.getPath(), pathStatus: 256}
+3 -2
Ver Arquivo
@@ -96,12 +96,13 @@ describe "LanguageMode", ->
buffer.setText("//this is a single line comment")
expect(languageMode.rowRangeForCommentAtBufferRow(0)).toBeUndefined()
describe "suggestedIndentForBufferRow", ->
it "returns the suggested indentation based on auto-indent/outdent rules", ->
describe ".suggestedIndentForBufferRow", ->
it "bases indentation off of the previous non-blank line", ->
expect(languageMode.suggestedIndentForBufferRow(0)).toBe 0
expect(languageMode.suggestedIndentForBufferRow(1)).toBe 1
expect(languageMode.suggestedIndentForBufferRow(2)).toBe 2
expect(languageMode.suggestedIndentForBufferRow(9)).toBe 1
expect(languageMode.suggestedIndentForBufferRow(11)).toBe 1
describe "rowRangeForParagraphAtBufferRow", ->
describe "with code and comments", ->
+92
Ver Arquivo
@@ -0,0 +1,92 @@
path = require 'path'
Module = require 'module'
fs = require 'fs-plus'
temp = require 'temp'
ModuleCache = require '../src/module-cache'
describe 'ModuleCache', ->
beforeEach ->
spyOn(Module, '_findPath').andCallThrough()
it 'resolves atom shell module paths without hitting the filesystem', ->
builtins = ModuleCache.cache.builtins
expect(Object.keys(builtins).length).toBeGreaterThan 0
for builtinName, builtinPath of builtins
expect(require.resolve(builtinName)).toBe builtinPath
expect(fs.isFileSync(require.resolve(builtinName)))
expect(Module._findPath.callCount).toBe 0
it 'resolves relative core paths without hitting the filesystem', ->
ModuleCache.add atom.getLoadSettings().resourcePath, {
_atomModuleCache:
extensions:
'.json': [
path.join('spec', 'fixtures', 'module-cache', 'file.json')
]
}
expect(require('./fixtures/module-cache/file.json').foo).toBe 'bar'
expect(Module._findPath.callCount).toBe 0
it 'resolves module paths when a compatible version is provided by core', ->
packagePath = fs.realpathSync(temp.mkdirSync('atom-package'))
ModuleCache.add packagePath, {
_atomModuleCache:
folders: [{
paths: [
''
]
dependencies:
'underscore-plus': '*'
}]
}
ModuleCache.add atom.getLoadSettings().resourcePath, {
_atomModuleCache:
dependencies: [{
name: 'underscore-plus'
version: require('underscore-plus/package.json').version
path: path.join('node_modules', 'underscore-plus', 'lib', 'underscore-plus.js')
}]
}
indexPath = path.join(packagePath, 'index.js')
fs.writeFileSync indexPath, """
exports.load = function() { require('underscore-plus'); };
"""
packageMain = require(indexPath)
Module._findPath.reset()
packageMain.load()
expect(Module._findPath.callCount).toBe 0
it 'does not resolve module paths when no compatible version is provided by core', ->
packagePath = fs.realpathSync(temp.mkdirSync('atom-package'))
ModuleCache.add packagePath, {
_atomModuleCache:
folders: [{
paths: [
''
]
dependencies:
'underscore-plus': '0.0.1'
}]
}
ModuleCache.add atom.getLoadSettings().resourcePath, {
_atomModuleCache:
dependencies: [{
name: 'underscore-plus'
version: require('underscore-plus/package.json').version
path: path.join('node_modules', 'underscore-plus', 'lib', 'underscore-plus.js')
}]
}
indexPath = path.join(packagePath, 'index.js')
fs.writeFileSync indexPath, """
exports.load = function() { require('underscore-plus'); };
"""
packageMain = require(indexPath)
Module._findPath.reset()
expect(-> packageMain.load()).toThrow()
expect(Module._findPath.callCount).toBe 1
+93 -45
Ver Arquivo
@@ -3,7 +3,7 @@ Package = require '../src/package'
describe "PackageManager", ->
beforeEach ->
atom.workspaceView = new WorkspaceView
atom.workspaceView = atom.views.getView(atom.workspace).__spacePenView
describe "::loadPackage(name)", ->
it "continues if the package has an invalid package.json", ->
@@ -48,9 +48,10 @@ describe "PackageManager", ->
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')
waitsForPromise ->
atom.packages.activatePackage('package-with-index')
waitsForPromise ->
atom.packages.activatePackage('package-with-index')
@@ -138,7 +139,7 @@ describe "PackageManager", ->
legacyCommandListener = jasmine.createSpy("legacyCommandListener")
editorView.command 'activation-command', legacyCommandListener
editorCommandListener = jasmine.createSpy("editorCommandListener")
atom.commands.add '.editor', 'activation-command', editorCommandListener
atom.commands.add 'atom-text-editor', 'activation-command', editorCommandListener
editorView[0].dispatchEvent(new CustomEvent('activation-command', bubbles: true))
expect(mainModule.activate.callCount).toBe 1
expect(mainModule.legacyActivationCommandCallCount).toBe 1
@@ -182,8 +183,10 @@ describe "PackageManager", ->
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})
waitsForPromise ->
atom.packages.activatePackage("package-with-serialization")
runs ->
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", [])
@@ -202,11 +205,13 @@ describe "PackageManager", ->
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element2[0])).toHaveLength 0
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element3[0])).toHaveLength 0
atom.packages.activatePackage("package-with-keymaps")
waitsForPromise ->
atom.packages.activatePackage("package-with-keymaps")
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element1[0])[0].command).toBe "test-1"
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element2[0])[0].command).toBe "test-2"
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element3[0])).toHaveLength 0
runs ->
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element1[0])[0].command).toBe "test-1"
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element2[0])[0].command).toBe "test-2"
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element3[0])).toHaveLength 0
describe "when the metadata contains a 'keymaps' manifest", ->
it "loads only the keymaps specified by the manifest, in the specified order", ->
@@ -215,11 +220,13 @@ describe "PackageManager", ->
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element1[0])).toHaveLength 0
atom.packages.activatePackage("package-with-keymaps-manifest")
waitsForPromise ->
atom.packages.activatePackage("package-with-keymaps-manifest")
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element1[0])[0].command).toBe 'keymap-1'
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-n', target:element1[0])[0].command).toBe 'keymap-2'
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-y', target:element3[0])).toHaveLength 0
runs ->
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-z', target:element1[0])[0].command).toBe 'keymap-1'
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-n', target:element1[0])[0].command).toBe 'keymap-2'
expect(atom.keymaps.findKeyBindings(keystrokes:'ctrl-y', target:element3[0])).toHaveLength 0
describe "menu loading", ->
beforeEach ->
@@ -232,14 +239,16 @@ describe "PackageManager", ->
expect(atom.contextMenu.templateForElement(element)).toEqual []
atom.packages.activatePackage("package-with-menus")
waitsForPromise ->
atom.packages.activatePackage("package-with-menus")
expect(atom.menu.template.length).toBe 2
expect(atom.menu.template[0].label).toBe "Second to Last"
expect(atom.menu.template[1].label).toBe "Last"
expect(atom.contextMenu.templateForElement(element)[0].label).toBe "Menu item 1"
expect(atom.contextMenu.templateForElement(element)[1].label).toBe "Menu item 2"
expect(atom.contextMenu.templateForElement(element)[2].label).toBe "Menu item 3"
runs ->
expect(atom.menu.template.length).toBe 2
expect(atom.menu.template[0].label).toBe "Second to Last"
expect(atom.menu.template[1].label).toBe "Last"
expect(atom.contextMenu.templateForElement(element)[0].label).toBe "Menu item 1"
expect(atom.contextMenu.templateForElement(element)[1].label).toBe "Menu item 2"
expect(atom.contextMenu.templateForElement(element)[2].label).toBe "Menu item 3"
describe "when the metadata contains a 'menus' manifest", ->
it "loads only the menus specified by the manifest, in the specified order", ->
@@ -247,13 +256,15 @@ describe "PackageManager", ->
expect(atom.contextMenu.templateForElement(element)).toEqual []
atom.packages.activatePackage("package-with-menus-manifest")
waitsForPromise ->
atom.packages.activatePackage("package-with-menus-manifest")
expect(atom.menu.template[0].label).toBe "Second to Last"
expect(atom.menu.template[1].label).toBe "Last"
expect(atom.contextMenu.templateForElement(element)[0].label).toBe "Menu item 2"
expect(atom.contextMenu.templateForElement(element)[1].label).toBe "Menu item 1"
expect(atom.contextMenu.templateForElement(element)[2]).toBeUndefined()
runs ->
expect(atom.menu.template[0].label).toBe "Second to Last"
expect(atom.menu.template[1].label).toBe "Last"
expect(atom.contextMenu.templateForElement(element)[0].label).toBe "Menu item 2"
expect(atom.contextMenu.templateForElement(element)[1].label).toBe "Menu item 1"
expect(atom.contextMenu.templateForElement(element)[2]).toBeUndefined()
describe "stylesheet loading", ->
describe "when the metadata contains a 'stylesheets' manifest", ->
@@ -270,33 +281,67 @@ describe "PackageManager", ->
expect(atom.themes.stylesheetElementForId(two)).toBeNull()
expect(atom.themes.stylesheetElementForId(three)).toBeNull()
atom.packages.activatePackage("package-with-stylesheets-manifest")
waitsForPromise ->
atom.packages.activatePackage("package-with-stylesheets-manifest")
expect(atom.themes.stylesheetElementForId(one)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(two)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(three)).toBeNull()
expect($('#jasmine-content').css('font-size')).toBe '1px'
runs ->
expect(atom.themes.stylesheetElementForId(one)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(two)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(three)).toBeNull()
expect($('#jasmine-content').css('font-size')).toBe '1px'
describe "when the metadata does not contain a 'stylesheets' manifest", ->
it "loads all stylesheets from the stylesheets directory", ->
one = require.resolve("./fixtures/packages/package-with-stylesheets/stylesheets/1.css")
two = require.resolve("./fixtures/packages/package-with-stylesheets/stylesheets/2.less")
three = require.resolve("./fixtures/packages/package-with-stylesheets/stylesheets/3.css")
three = require.resolve("./fixtures/packages/package-with-stylesheets/stylesheets/3.test-context.css")
four = require.resolve("./fixtures/packages/package-with-stylesheets/stylesheets/4.css")
one = atom.themes.stringToId(one)
two = atom.themes.stringToId(two)
three = atom.themes.stringToId(three)
four = atom.themes.stringToId(four)
expect(atom.themes.stylesheetElementForId(one)).toBeNull()
expect(atom.themes.stylesheetElementForId(two)).toBeNull()
expect(atom.themes.stylesheetElementForId(three)).toBeNull()
expect(atom.themes.stylesheetElementForId(four)).toBeNull()
waitsForPromise ->
atom.packages.activatePackage("package-with-stylesheets")
runs ->
expect(atom.themes.stylesheetElementForId(one)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(two)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(three)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(four)).not.toBeNull()
expect($('#jasmine-content').css('font-size')).toBe '3px'
it "assigns the stylesheet's context based on the filename", ->
waitsForPromise ->
atom.packages.activatePackage("package-with-stylesheets")
expect(atom.themes.stylesheetElementForId(one)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(two)).not.toBeNull()
expect(atom.themes.stylesheetElementForId(three)).not.toBeNull()
expect($('#jasmine-content').css('font-size')).toBe '3px'
runs ->
count = 0
for styleElement in atom.styles.getStyleElements()
if styleElement.sourcePath.match /1.css/
expect(styleElement.context).toBe undefined
count++
if styleElement.sourcePath.match /2.less/
expect(styleElement.context).toBe undefined
count++
if styleElement.sourcePath.match /3.test-context.css/
expect(styleElement.context).toBe 'test-context'
count++
if styleElement.sourcePath.match /4.css/
expect(styleElement.context).toBe undefined
count++
expect(count).toBe 4
describe "grammar loading", ->
it "loads the package's grammars", ->
@@ -313,7 +358,7 @@ describe "PackageManager", ->
atom.packages.activatePackage("package-with-scoped-properties")
runs ->
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
expect(atom.config.get ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
describe "converted textmate packages", ->
it "loads the package's grammars", ->
@@ -326,15 +371,18 @@ describe "PackageManager", ->
expect(atom.syntax.selectGrammar("file.rb").name).toBe "Ruby"
it "loads the translated scoped properties", ->
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
expect(atom.config.get(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
waitsForPromise ->
atom.packages.activatePackage('language-ruby')
runs ->
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBe '# '
expect(atom.config.get(['.source.ruby'], 'editor.commentStart')).toBe '# '
describe "::deactivatePackage(id)", ->
afterEach ->
atom.packages.unloadPackages()
describe "atom packages", ->
it "calls `deactivate` on the package's main module if activate was successful", ->
pack = null
@@ -436,9 +484,9 @@ describe "PackageManager", ->
atom.packages.activatePackage("package-with-scoped-properties")
runs ->
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
expect(atom.config.get ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
atom.packages.deactivatePackage("package-with-scoped-properties")
expect(atom.syntax.getProperty ['.source.omg'], 'editor.increaseIndentPattern').toBeUndefined()
expect(atom.config.get ['.source.omg'], 'editor.increaseIndentPattern').toBeUndefined()
describe "textmate packages", ->
it "removes the package's grammars", ->
@@ -458,7 +506,7 @@ describe "PackageManager", ->
runs ->
atom.packages.deactivatePackage('language-ruby')
expect(atom.syntax.getProperty(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
expect(atom.config.get(['.source.ruby'], 'editor.commentStart')).toBeUndefined()
describe "::activate()", ->
packageActivator = null
+18 -18
Ver Arquivo
@@ -38,51 +38,51 @@ describe "Package", ->
theme = null
beforeEach ->
$("#jasmine-content").append $("<div class='editor'></div>")
$("#jasmine-content").append $("<atom-text-editor></atom-text-editor>")
afterEach ->
theme.deactivate() if theme?
describe "when the theme contains a single style file", ->
it "loads and applies css", ->
expect($(".editor").css("padding-bottom")).not.toBe "1234px"
expect($("atom-text-editor").css("padding-bottom")).not.toBe "1234px"
themePath = atom.project.resolve('packages/theme-with-index-css')
theme = new ThemePackage(themePath)
theme.activate()
expect($(".editor").css("padding-top")).toBe "1234px"
expect($("atom-text-editor").css("padding-top")).toBe "1234px"
it "parses, loads and applies less", ->
expect($(".editor").css("padding-bottom")).not.toBe "1234px"
expect($("atom-text-editor").css("padding-bottom")).not.toBe "1234px"
themePath = atom.project.resolve('packages/theme-with-index-less')
theme = new ThemePackage(themePath)
theme.activate()
expect($(".editor").css("padding-top")).toBe "4321px"
expect($("atom-text-editor").css("padding-top")).toBe "4321px"
describe "when the theme contains a package.json file", ->
it "loads and applies stylesheets from package.json in the correct order", ->
expect($(".editor").css("padding-top")).not.toBe("101px")
expect($(".editor").css("padding-right")).not.toBe("102px")
expect($(".editor").css("padding-bottom")).not.toBe("103px")
expect($("atom-text-editor").css("padding-top")).not.toBe("101px")
expect($("atom-text-editor").css("padding-right")).not.toBe("102px")
expect($("atom-text-editor").css("padding-bottom")).not.toBe("103px")
themePath = atom.project.resolve('packages/theme-with-package-file')
theme = new ThemePackage(themePath)
theme.activate()
expect($(".editor").css("padding-top")).toBe("101px")
expect($(".editor").css("padding-right")).toBe("102px")
expect($(".editor").css("padding-bottom")).toBe("103px")
expect($("atom-text-editor").css("padding-top")).toBe("101px")
expect($("atom-text-editor").css("padding-right")).toBe("102px")
expect($("atom-text-editor").css("padding-bottom")).toBe("103px")
describe "when the theme does not contain a package.json file and is a directory", ->
it "loads all stylesheet files in the directory", ->
expect($(".editor").css("padding-top")).not.toBe "10px"
expect($(".editor").css("padding-right")).not.toBe "20px"
expect($(".editor").css("padding-bottom")).not.toBe "30px"
expect($("atom-text-editor").css("padding-top")).not.toBe "10px"
expect($("atom-text-editor").css("padding-right")).not.toBe "20px"
expect($("atom-text-editor").css("padding-bottom")).not.toBe "30px"
themePath = atom.project.resolve('packages/theme-without-package-file')
theme = new ThemePackage(themePath)
theme.activate()
expect($(".editor").css("padding-top")).toBe "10px"
expect($(".editor").css("padding-right")).toBe "20px"
expect($(".editor").css("padding-bottom")).toBe "30px"
expect($("atom-text-editor").css("padding-top")).toBe "10px"
expect($("atom-text-editor").css("padding-right")).toBe "20px"
expect($("atom-text-editor").css("padding-bottom")).toBe "30px"
describe "reloading a theme", ->
beforeEach ->
@@ -92,7 +92,7 @@ describe "Package", ->
it "reloads without readding to the stylesheets list", ->
expect(theme.getStylesheetPaths().length).toBe 3
theme.reloadStylesheet(theme.getStylesheetPaths()[0])
theme.reloadStylesheets()
expect(theme.getStylesheetPaths().length).toBe 3
describe "events", ->
+33
Ver Arquivo
@@ -33,6 +33,13 @@ describe "PaneContainer", ->
[pane1B, pane2B, pane3B] = containerB.getPanes()
expect(containerB.getActivePane()).toBe pane3B
it "makes the first pane active if no pane exists for the activePaneId", ->
pane3A.activate()
state = containerA.serialize()
state.activePaneId = -22
containerB = atom.deserializers.deserialize(state)
expect(containerB.getActivePane()).toBe containerB.getPanes()[0]
it "does not allow the root pane to be destroyed", ->
container = new PaneContainer
container.getRoot().destroy()
@@ -115,3 +122,29 @@ describe "PaneContainer", ->
pane3.addItems([new Object, new Object])
expect(observed).toEqual container.getPaneItems()
describe "::confirmClose()", ->
[container, pane1, pane2] = []
beforeEach ->
class TestItem
shouldPromptToSave: -> true
getUri: -> 'test'
container = new PaneContainer
container.getRoot().splitRight()
[pane1, pane2] = container.getPanes()
pane1.addItem(new TestItem)
pane2.addItem(new TestItem)
it "returns true if the user saves all modified files when prompted", ->
spyOn(atom, "confirm").andReturn(0)
saved = container.confirmClose()
expect(saved).toBeTruthy()
expect(atom.confirm).toHaveBeenCalled()
it "returns false if the user cancels saving any modified file", ->
spyOn(atom, "confirm").andReturn(1)
saved = container.confirmClose()
expect(saved).toBeFalsy()
expect(atom.confirm).toHaveBeenCalled()
+15 -37
Ver Arquivo
@@ -1,5 +1,6 @@
path = require 'path'
temp = require 'temp'
PaneContainer = require '../src/pane-container'
PaneContainerView = require '../src/pane-container-view'
PaneView = require '../src/pane-view'
{$, View, $$} = require 'atom'
@@ -18,7 +19,7 @@ describe "PaneContainerView", ->
save: -> @saved = true
isEqual: (other) -> @name is other?.name
container = new PaneContainerView
container = atom.views.getView(atom.workspace.paneContainer).__spacePenView
pane1 = container.getRoot()
pane1.activateItem(new TestView('1'))
pane2 = pane1.splitRight(new TestView('2'))
@@ -70,39 +71,16 @@ describe "PaneContainerView", ->
for item in pane.getItems()
expect(item.saved).toBeTruthy()
describe ".confirmClose()", ->
it "returns true after modified files are saved", ->
pane1.itemAtIndex(0).shouldPromptToSave = -> true
pane2.itemAtIndex(0).shouldPromptToSave = -> true
spyOn(atom, "confirm").andReturn(0)
saved = container.confirmClose()
runs ->
expect(saved).toBeTruthy()
expect(atom.confirm).toHaveBeenCalled()
it "returns false if the user cancels saving", ->
pane1.itemAtIndex(0).shouldPromptToSave = -> true
pane2.itemAtIndex(0).shouldPromptToSave = -> true
spyOn(atom, "confirm").andReturn(1)
saved = container.confirmClose()
runs ->
expect(saved).toBeFalsy()
expect(atom.confirm).toHaveBeenCalled()
describe "serialization", ->
it "can be serialized and deserialized, and correctly adjusts dimensions of deserialized panes after attach", ->
newContainer = new PaneContainerView(container.model.testSerialization())
expect(newContainer.find('.pane-row > :contains(1)')).toExist()
expect(newContainer.find('.pane-row > .pane-column > :contains(2)')).toExist()
expect(newContainer.find('.pane-row > .pane-column > :contains(3)')).toExist()
newContainer = atom.views.getView(container.model.testSerialization()).__spacePenView
expect(newContainer.find('atom-pane-axis.horizontal > :contains(1)')).toExist()
expect(newContainer.find('atom-pane-axis.horizontal > atom-pane-axis.vertical > :contains(2)')).toExist()
expect(newContainer.find('atom-pane-axis.horizontal > atom-pane-axis.vertical > :contains(3)')).toExist()
newContainer.height(200).width(300).attachToDom()
expect(newContainer.find('.pane-row > :contains(1)').width()).toBe 150
expect(newContainer.find('.pane-row > .pane-column > :contains(2)').height()).toBe 100
expect(newContainer.find('atom-pane-axis.horizontal > :contains(1)').width()).toBe 150
expect(newContainer.find('atom-pane-axis.horizontal > atom-pane-axis.vertical > :contains(2)').height()).toBe 100
describe "if there are empty panes after deserialization", ->
beforeEach ->
@@ -111,15 +89,15 @@ describe "PaneContainerView", ->
describe "if the 'core.destroyEmptyPanes' config option is false (the default)", ->
it "leaves the empty panes intact", ->
newContainer = new PaneContainerView(container.model.testSerialization())
expect(newContainer.find('.pane-row > :contains(1)')).toExist()
expect(newContainer.find('.pane-row > .pane-column > .pane').length).toBe 2
newContainer = atom.views.getView(container.model.testSerialization()).__spacePenView
expect(newContainer.find('atom-pane-axis.horizontal > :contains(1)')).toExist()
expect(newContainer.find('atom-pane-axis.horizontal > atom-pane-axis.vertical > atom-pane').length).toBe 2
describe "if the 'core.destroyEmptyPanes' config option is true", ->
it "removes empty panes on deserialization", ->
atom.config.set('core.destroyEmptyPanes', true)
newContainer = new PaneContainerView(container.model.testSerialization())
expect(newContainer.find('.pane-row, .pane-column')).not.toExist()
newContainer = atom.views.getView(container.model.testSerialization()).__spacePenView
expect(newContainer.find('atom-pane-axis.horizontal, atom-pane-axis.vertical')).not.toExist()
expect(newContainer.find('> :contains(1)')).toExist()
describe "pane-container:active-pane-item-changed", ->
@@ -131,7 +109,7 @@ describe "PaneContainerView", ->
item2b = new TestView('2b')
item3a = new TestView('3a')
container = new PaneContainerView
container = atom.views.getView(new PaneContainer).__spacePenView
pane1 = container.getRoot()
pane1.activateItem(item1a)
container.attachToDom()
@@ -281,7 +259,7 @@ describe "PaneContainerView", ->
# |7|8|9|
# -------
container = new PaneContainerView
container = atom.views.getView(new PaneContainer).__spacePenView
pane1 = container.getRoot()
pane1.activateItem(new TestView('1'))
pane4 = pane1.splitDown(new TestView('4'))
+49
Ver Arquivo
@@ -146,6 +146,24 @@ describe "Pane", ->
pane.activateNextItem()
expect(pane.getActiveItem()).toBe item1
describe "::moveItemRight() and ::moveItemLeft()", ->
it "moves the active item to the right and left, without looping around at either end", ->
pane = new Pane(items: [new Item("A"), new Item("B"), new Item("C")])
[item1, item2, item3] = pane.getItems()
pane.activateItemAtIndex(0)
expect(pane.getActiveItem()).toBe item1
pane.moveItemLeft()
expect(pane.getItems()).toEqual [item1, item2, item3]
pane.moveItemRight()
expect(pane.getItems()).toEqual [item2, item1, item3]
pane.moveItemLeft()
expect(pane.getItems()).toEqual [item1, item2, item3]
pane.activateItemAtIndex(2)
expect(pane.getActiveItem()).toBe item3
pane.moveItemRight()
expect(pane.getItems()).toEqual [item1, item2, item3]
describe "::activateItemAtIndex(index)", ->
it "activates the item at the given index", ->
pane = new Pane(items: [new Item("A"), new Item("B"), new Item("C")])
@@ -565,6 +583,37 @@ describe "Pane", ->
expect(pane1.isActive()).toBe false
expect(pane2.isActive()).toBe true
describe "::close()", ->
it "prompts to save unsaved items before destroying the pane", ->
pane = new Pane(items: [new Item("A"), new Item("B")])
[item1, item2] = pane.getItems()
item1.shouldPromptToSave = -> true
item1.getUri = -> "/test/path"
item1.save = jasmine.createSpy("save")
spyOn(atom, 'confirm').andReturn(0)
pane.close()
expect(atom.confirm).toHaveBeenCalled()
expect(item1.save).toHaveBeenCalled()
expect(pane.isDestroyed()).toBe true
it "does not destroy the pane if cancel is called", ->
pane = new Pane(items: [new Item("A"), new Item("B")])
[item1, item2] = pane.getItems()
item1.shouldPromptToSave = -> true
item1.getUri = -> "/test/path"
item1.save = jasmine.createSpy("save")
spyOn(atom, 'confirm').andReturn(1)
pane.close()
expect(atom.confirm).toHaveBeenCalled()
expect(item1.save).not.toHaveBeenCalled()
expect(pane.isDestroyed()).toBe false
describe "::destroy()", ->
[container, pane1, pane2] = []

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