• 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

File Extended

Represents an individual file that can be watched, read from, and written to.

Construction

::constructor(filePath, symlink)

Configures a new File instance, no files are accessed.

Argument Description

filePath

A String containing the absolute path to the file

symlink

A Boolean indicating if the path is a symlink (default: false).

::create()

Creates the file on disk that corresponds to ::getPath() if no such file already exists.

Return values

Returns a Promise that resolves once the file is created on disk. It resolves to a boolean value that is true if the file was created or false if it already existed.

Event Subscription

::onDidChange(callback)

Invoke the given callback when the file’s contents change.

Argument Description

callback

Function to be called when the file’s contents change.

Return values

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

::onDidRename(callback)

Invoke the given callback when the file’s path changes.

Argument Description

callback

Function to be called when the file’s path changes.

Return values

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

::onDidDelete(callback)

Invoke the given callback when the file is deleted.

Argument Description

callback

Function to be called when the file is deleted.

Return values

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

::onWillThrowWatchError(callback)

Invoke the given callback when there is an error with the watch. When your callback has been invoked, the file will have unsubscribed from the file watches.

Argument Description

callback

Function callback

errorObject

Object

error

Object the error object

handle

Function call this to indicate you have handled the error. The error will not be thrown if this function is called.

File Metadata

::isFile()

Return values

Returns a Boolean, always true.

::isDirectory()

Return values

Returns a Boolean, always false.

::isSymbolicLink()

Return values

Returns a Boolean indicating whether or not this is a symbolic link

::exists()

Return values

Returns a promise that resolves to a Boolean, true if the file exists, false otherwise.

::existsSync()

Return values

Returns a Boolean, true if the file exists, false otherwise.

::getDigest()

Get the SHA-1 digest of this file

Return values

Returns a promise that resolves to a String.

::getDigestSync()

Get the SHA-1 digest of this file

Return values

Returns a String.

::setEncoding(encoding)

Sets the file’s character set encoding name.

Argument Description

encoding

The String encoding to use (default: ‘utf8’)

::getEncoding()

Return values

Returns the String encoding name for this file (default: ‘utf8’).

Managing Paths

::getPath()

Return values

Returns the String path for the file.

::getRealPathSync()

Return values

Returns this file’s completely resolved String path.

::getRealPath()

Return values

Returns a promise that resolves to the file’s completely resolved String path.

::getBaseName()

Return the String filename without any directory information.

Traversing

::getParent()

Return the Directory that contains this file.

Reading and Writing

::read(flushCache)

Reads the contents of the file.

Argument Description

flushCache

A Boolean indicating whether to require a direct read or if a cached copy is acceptable.

Return values

Returns a promise that resolves to a String.

::createReadStream()

Return values

Returns a stream to read the content of the file.

Returns a ReadStream object.

::write(text)

Overwrites the file with the given text.

Argument Description

text

The String text to write to the underlying file.

Return values

Returns a Promise that resolves when the file has been written.

::createWriteStream()

Return values

Returns a stream to write content to the file.

Returns a WriteStream object.

::writeSync(text)

Overwrites the file with the given text.

Argument Description

text

The String text to write to the underlying file.

Return values

Returns .

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