diff --git a/docs/README.md b/docs/README.md index aad58d93e..e8863f520 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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. diff --git a/exports/atom.coffee b/exports/atom.coffee index 5d707553d..f22e0c802 100644 --- a/exports/atom.coffee +++ b/exports/atom.coffee @@ -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 diff --git a/package.json b/package.json index a8b9c83f0..c712e5d1c 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "guid": "0.0.10", "jasmine-json": "~0.0", "jasmine-tagged": "^1.1.2", + "jquery": "^2.1.1", "less-cache": "0.19.0", "mixto": "^1", "mkdirp": "0.3.5",