• 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

PackageManager Extended

Package manager for coordinating the lifecycle of Atom packages.

An instance of this class is always available as the atom.packages global.

Packages can be loaded, activated, and deactivated, and unloaded:

  • Loading a package reads and parses the package’s metadata and resources such as keymaps, menus, stylesheets, etc.
  • Activating a package registers the loaded resources and calls activate() on the package’s main module.
  • Deactivating a package unregisters the package’s resources and calls deactivate() on the package’s main module.
  • Unloading a package removes it completely from the package manager.

Packages can be enabled/disabled via the core.disabledPackages config settings and also by calling enablePackage()/disablePackage().

Event Subscription

::onDidLoadInitialPackages(callback)

Invoke the given callback when all packages have been loaded.

Argument Description

callback

Function

Return values

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

::onDidActivateInitialPackages(callback)

Invoke the given callback when all packages have been activated.

Argument Description

callback

Function

Return values

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

::onDidActivatePackage(callback)

Invoke the given callback when a package is activated.

Argument Description

callback

A Function to be invoked when a package is activated.

package

The Package that was activated.

Return values

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

::onDidDeactivatePackage(callback)

Invoke the given callback when a package is deactivated.

Argument Description

callback

A Function to be invoked when a package is deactivated.

package

The Package that was deactivated.

Return values

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

::onDidLoadPackage(callback)

Invoke the given callback when a package is loaded.

Argument Description

callback

A Function to be invoked when a package is loaded.

package

The Package that was loaded.

Return values

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

::onDidUnloadPackage(callback)

Invoke the given callback when a package is unloaded.

Argument Description

callback

A Function to be invoked when a package is unloaded.

package

The Package that was unloaded.

Return values

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

Package system data

::getApmPath()

Get the path to the apm command.

Uses the value of the core.apmPath config setting if it exists.

Return a String file path to apm.

::getPackageDirPaths()

Get the paths being used to look for packages.

Return values

Returns an Array of String directory paths.

General package data

::resolvePackagePath(name)

Resolve the given package name to a path on disk.

Return a String folder path or undefined if it could not be resolved.

Argument Description

name

The String package name.

::isBundledPackage(name)

Is the package with the given name bundled with Atom?

Argument Description

name

The String package name.

Return values

Returns a Boolean.

Enabling and disabling packages

::enablePackage(name)

Enable the package with the given name.

Argument Description

name

The String package name.

Return values

Returns the Package that was enabled or null if it isn’t loaded.

::disablePackage(name)

Disable the package with the given name.

Argument Description

name

The String package name.

Return values

Returns the Package that was disabled or null if it isn’t loaded.

::isPackageDisabled(name)

Is the package with the given name disabled?

Argument Description

name

The String package name.

Return values

Returns a Boolean.

Accessing active packages

::getActivePackages()

Get an Array of all the active Packages.

::getActivePackage(name)

Get the active Package with the given name.

Argument Description

name

The String package name.

Return values

Returns a Package or undefined.

::isPackageActive(name)

Is the Package with the given name active?

Argument Description

name

The String package name.

Return values

Returns a Boolean.

::hasActivatedInitialPackages()

Return values

Returns a Boolean indicating whether package activation has occurred.

Accessing loaded packages

::getLoadedPackages()

Get an Array of all the loaded Packages

::getLoadedPackage(name)

Get the loaded Package with the given name.

Argument Description

name

The String package name.

Return values

Returns a Package or undefined.

::isPackageLoaded(name)

Is the package with the given name loaded?

Argument Description

name

The String package name.

Return values

Returns a Boolean.

::hasLoadedInitialPackages()

Return values

Returns a Boolean indicating whether package loading has occurred.

Accessing available packages

::getAvailablePackagePaths()

Return values

Returns an Array of Strings of all the available package paths.

::getAvailablePackageNames()

Return values

Returns an Array of Strings of all the available package names.

::getAvailablePackageMetadata()

Return values

Returns an Array of Strings of all the available package metadata.

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