• Packages
  • Themes
  • Documentation
  • Blog
  • Discuss

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
  • Emitter
  • File
  • GitRepository
  • Grammar
  • GrammarRegistry
  • Gutter
  • KeymapManager
  • LayerDecoration
  • MarkerLayer
  • MenuManager
  • Notification
  • NotificationManager
  • Package
  • PackageManager
  • Pane
  • Panel
  • Point
  • Project
  • Range
  • ScopeDescriptor
  • Selection
  • StyleManager
  • Task
  • TextBuffer
  • TextEditor
  • ThemeManager
  • TooltipManager
  • View
  • ViewRegistry
  • Workspace

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

Project Extended

Represents a project that’s opened in Atom.

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

Event Subscription

::onDidChangePaths(callback)

Invoke the given callback when the project paths change.

Argument Description

callback

Function to be called after the project paths change.

projectPaths

An Array of String project paths.

Return values

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

Accessing the git repository

::getRepositories()

Get an Array of GitRepositorys associated with the project’s directories.

This method will be removed in 2.0 because it does synchronous I/O. Prefer the following, which evaluates to a Promise that resolves to an Array of Repository objects:

Promise.all(atom.project.getDirectories().map(
    atom.project.repositoryForDirectory.bind(atom.project)))

::repositoryForDirectory(directory)

Get the repository for a given directory asynchronously.

Argument Description

directory

Directory for which to get a Repository.

Return values

Returns a Promise that resolves with either:

  • Repository if a repository can be created for the given directory
  • null if no repository can be created for the given directory.

Managing Paths

::getPaths()

Get an Array of Strings containing the paths of the project’s directories.

::setPaths(projectPaths)

Set the paths of the project’s directories.

Argument Description

projectPaths

Array of String paths.

::addPath(projectPath)

Add a path to the project’s list of root paths

Argument Description

projectPath

String The path to the directory to add.

::removePath(projectPath)

remove a path from the project’s list of root paths.

Argument Description

projectPath

String The path to remove.

::getDirectories()

Get an Array of Directorys associated with this project.

::relativizePath(fullPath)

Get the path to the project directory that contains the given path, and the relative path from that project directory to the given path.

Argument Description

fullPath

String An absolute path.

Return values

Returns an Array with two elements:

  • projectPath The String path to the project directory that contains the given path, or null if none is found.
  • relativePath String The relative path from the project directory to the given path.

::contains(pathToCheck)

Determines whether the given path (real or symbolic) is inside the project’s directory.

This method does not actually check if the path exists, it just checks their locations relative to each other.

Argument Description

pathToCheck

String path

Return values

Returns whether the path is inside the project’s root directory.

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