• Packages
  • Themes
  • Documentation
  • Blog
  • Discussions

Chapter 1: Getting Started

  • Why Atom?
  • Installing Atom
  • Atom Basics
  • Summary

Chapter 2: Using Atom

  • Atom Packages
  • Moving in Atom
  • Atom Selections
  • Editing and Deleting Text
  • Find and Replace
  • Snippets
  • Autocomplete
  • Folding
  • Panes
  • Pending Pane Items
  • Grammar
  • Version Control in Atom
  • GitHub package
  • Writing in Atom
  • Basic Customization
  • Summary

Chapter 3: Hacking Atom

  • Tools of the Trade
  • The Init File
  • Package: Word Count
  • Package: Modifying Text
  • Package: Active Editor Info
  • Creating a Theme
  • Creating a Grammar
  • Creating a Legacy TextMate Grammar
  • Publishing
  • Iconography
  • Debugging
  • Writing specs
  • Handling URIs
  • Cross-Platform Compatibility
  • Converting from TextMate
  • Hacking on Atom Core
  • Contributing to Official Atom Packages
  • Creating a Fork of a Core Package in atom/atom
  • Maintaining a Fork of a Core Package in atom/atom
  • Summary

Chapter 4: Behind Atom

  • Configuration API
  • Keymaps In-Depth
  • Scoped Settings, Scopes and Scope Descriptors
  • Serialization in Atom
  • Developing Node Modules
  • Interacting With Other Packages Via Services
  • Maintaining Your Packages
  • How Atom Uses Chromium Snapshots
  • Summary

Reference: API

  • AtomEnvironment
  • BufferedNodeProcess
  • BufferedProcess
  • Clipboard
  • Color
  • CommandRegistry
  • CompositeDisposable
  • Config
  • ContextMenuManager
  • Cursor
  • Decoration
  • DeserializerManager
  • Directory
  • DisplayMarker
  • DisplayMarkerLayer
  • Disposable
  • Dock
  • Emitter
  • File
  • GitRepository
  • Grammar
  • GrammarRegistry
  • Gutter
  • HistoryManager
  • KeymapManager
  • LayerDecoration
  • MarkerLayer
  • MenuManager
  • Notification
  • NotificationManager
  • Package
  • PackageManager
  • Pane
  • Panel
  • PathWatcher
  • Point
  • Project
  • Range
  • ScopeDescriptor
  • Selection
  • StyleManager
  • Task
  • TextBuffer
  • TextEditor
  • ThemeManager
  • TooltipManager
  • ViewRegistry
  • Workspace
  • WorkspaceCenter

Appendix A: Resources

  • Glossary

Appendix B: FAQ

  • Is Atom open source?
  • What does Atom cost?
  • What platforms does Atom run on?
  • How can I contribute to Atom?
  • Why does Atom collect usage data?
  • Atom in the cloud?
  • What's the difference between an IDE and an editor?
  • How can I tell if subpixel antialiasing is working?
  • Why is Atom deleting trailing whitespace? Why is there a newline at the end of the file?
  • What does Safe Mode do?
  • I have a question about a specific Atom community package. Where is the best place to ask it?
  • I’m using an international keyboard and keys that use AltGr or Ctrl+Alt aren’t working
  • I’m having a problem with Julia! What do I do?
  • I’m getting an error about a “self-signed certificate”. What do I do?
  • I’m having a problem with PlatformIO! What do I do?
  • How do I make Atom recognize a file with extension X as language Y?
  • How do I make the Welcome screen stop showing up?
  • How do I preview web page changes automatically?
  • How do I accept input from my program or script when using the script package?
  • I am unable to update to the latest version of Atom on macOS. How do I fix this?
  • I’m trying to change my syntax colors from styles.less, but it isn’t working!
  • How do I build or execute code I've written in Atom?
  • How do I uninstall Atom on macOS?
  • macOS Mojave font rendering change
  • Why does macOS say that Atom wants to access my calendar, contacts, photos, etc.?
  • How do I turn on line wrap?
  • The menu bar disappeared, how do I get it back?
  • How do I use a newline in the result of find and replace?
  • What is this line on the right in the editor view?

Appendix C: Shadow DOM

  • Removing Shadow DOM styles

Appendix D: Upgrading to 1.0 APIs

  • Upgrading Your Package
  • Upgrading Your UI Theme Or Package Selectors
  • Upgrading Your Syntax Theme

Appendix E: Atom server-side APIs

  • Atom package server API
  • Atom update server API

  • mac
  • windows
  • linux

WorkspaceCenter Essential

Represents the workspace at the center of the entire window.

Event Subscription

::observeTextEditors(callback)

Invoke the given callback with all current and future text editors in the workspace center.

Argument Description

callback

Function to be called with current and future text editors.

editor

An TextEditor that is present in ::getTextEditors at the time of subscription or that is added at some later time.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::observePaneItems(callback)

Invoke the given callback with all current and future panes items in the workspace center.

Argument Description

callback

Function to be called with current and future pane items.

item

An item that is present in ::getPaneItems at the time of subscription or that is added at some later time.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::onDidChangeActivePaneItem(callback)

Invoke the given callback when the active pane item changes.

Because observers are invoked synchronously, it’s important not to perform any expensive operations via this method. Consider ::onDidStopChangingActivePaneItem to delay operations until after changes stop occurring.

Argument Description

callback

Function to be called when the active pane item changes.

item

The active pane item.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::onDidStopChangingActivePaneItem(callback)

Invoke the given callback when the active pane item stops changing.

Observers are called asynchronously 100ms after the last active pane item change. Handling changes here rather than in the synchronous ::onDidChangeActivePaneItem prevents unneeded work if the user is quickly changing or closing tabs and ensures critical UI feedback, like changing the highlighted tab, gets priority over work that can be done asynchronously.

Argument Description

callback

Function to be called when the active pane item stopts changing.

item

The active pane item.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::observeActivePaneItem(callback)

Invoke the given callback with the current active pane item and with all future active pane items in the workspace center.

Argument Description

callback

Function to be called when the active pane item changes.

item

The current active pane item.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

Extended Methods

::onDidAddPane(callback)

Invoke the given callback when a pane is added to the workspace center.

Argument Description

callback

Function to be called panes are added.

event

Object with the following keys:

pane

The added pane.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::onWillDestroyPane(callback)

Invoke the given callback before a pane is destroyed in the workspace center.

Argument Description

callback

Function to be called before panes are destroyed.

event

Object with the following keys:

pane

The pane to be destroyed.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::onDidDestroyPane(callback)

Invoke the given callback when a pane is destroyed in the workspace center.

Argument Description

callback

Function to be called panes are destroyed.

event

Object with the following keys:

pane

The destroyed pane.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::observePanes(callback)

Invoke the given callback with all current and future panes in the workspace center.

Argument Description

callback

Function to be called with current and future panes.

pane

A Pane that is present in ::getPanes at the time of subscription or that is added at some later time.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::onDidChangeActivePane(callback)

Invoke the given callback when the active pane changes.

Argument Description

callback

Function to be called when the active pane changes.

pane

A Pane that is the current return value of ::getActivePane.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::observeActivePane(callback)

Invoke the given callback with the current active pane and when the active pane changes.

Argument Description

callback

Function to be called with the current and future active# panes.

pane

A Pane that is the current return value of ::getActivePane.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::onDidAddPaneItem(callback)

Invoke the given callback when a pane item is added to the workspace center.

Argument Description

callback

Function to be called when pane items are added.

event

Object with the following keys:

item

The added pane item.

pane

Pane containing the added item.

index

Number indicating the index of the added item in its pane.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

::onWillDestroyPaneItem(callback)

Invoke the given callback when a pane item is about to be destroyed, before the user is prompted to save it.

Argument Description

callback

Function to be called before pane items are destroyed.

event

Object with the following keys:

item

The item to be destroyed.

pane

Pane containing the item to be destroyed.

index

Number indicating the index of the item to be destroyed in its pane.

Return values

Returns a Disposable on which .dispose can be called to unsubscribe.

::onDidDestroyPaneItem(callback)

Invoke the given callback when a pane item is destroyed.

Argument Description

callback

Function to be called when pane items are destroyed.

event

Object with the following keys:

item

The destroyed item.

pane

Pane containing the destroyed item.

index

Number indicating the index of the destroyed item in its pane.

Return values

Returns a Disposable on which .dispose can be called to unsubscribe.

::onDidAddTextEditor(callback)

Invoke the given callback when a text editor is added to the workspace center.

Argument Description

callback

Function to be called when panes are added.

event

Object with the following keys:

textEditor

TextEditor that was added.

pane

Pane containing the added text editor.

index

Number indicating the index of the added text editor in its pane.

Return values

Returns a Disposable on which .dispose() can be called to unsubscribe.

Pane Items

::getPaneItems()

Get all pane items in the workspace center.

Return values

Returns an Array of items.

::getActivePaneItem()

Get the active Pane’s active item.

Return values

Returns an pane item Object.

::getTextEditors()

Get all text editors in the workspace center.

Return values

Returns an Array of TextEditors.

::getActiveTextEditor()

Get the active item if it is an TextEditor.

Return values

Returns an TextEditor or undefined if the current active item is not an TextEditor.

Panes

This section only has Extended methods.

Extended Methods

::getPanes()

Get all panes in the workspace center.

Return values

Returns an Array of Panes.

::getActivePane()

Get the active Pane.

Return values

Returns a Pane.

::activateNextPane()

Make the next pane active.

::activatePreviousPane()

Make the previous pane active.

  • Terms of Use
  • Privacy
  • Code of Conduct
  • Releases
  • FAQ
  • Contact
  • Contribute!
with by