• 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

Point Essential

Represents a point in a buffer in row/column coordinates.

Every public method that takes a point also accepts a point-compatible Array. This means a 2-element array containing Numbers representing the row and column. So the following are equivalent:

new Point(1, 2)
[1, 2] # Point compatible Array

Properties

::row

A zero-indexed Number representing the row of the Point.

::column

A zero-indexed Number representing the column of the Point.

Construction

.fromObject(object, copy)

Convert any point-compatible object to a Point.

Argument Description

object

This can be an object that’s already a Point, in which case it’s simply returned, or an array containing two Numbers representing the row and column.

copy

An optional boolean indicating whether to force the copying of objects that are already points.

Return values

Returns: A Point based on the given object.

::constructor(row, column)

Construct a Point object

Argument Description

row

Number row

column

Number column

::copy()

Return values

Returns a new Point with the same row and column.

::negate()

Return values

Returns a new Point with the row and column negated.

Comparison

.min(point1, point2)

Argument Description

point1

Point

point2

Point

Return values

Returns the given Point that is earlier in the buffer.

::compare(other)

Argument Description

other

A Point or point-compatible Array.

Return values

Returns -1 if this point precedes the argument.

Returns 0 if this point is equivalent to the argument.

Returns 1 if this point follows the argument.

::isEqual(other)

Argument Description

other

A Point or point-compatible Array.

Return values

Returns a Boolean indicating whether this point has the same row and column as the given Point or point-compatible Array.

::isLessThan(other)

Argument Description

other

A Point or point-compatible Array.

Return values

Returns a Boolean indicating whether this point precedes the given Point or point-compatible Array.

::isLessThanOrEqual(other)

Argument Description

other

A Point or point-compatible Array.

Return values

Returns a Boolean indicating whether this point precedes or is equal to the given Point or point-compatible Array.

::isGreaterThan(other)

Argument Description

other

A Point or point-compatible Array.

Return values

Returns a Boolean indicating whether this point follows the given Point or point-compatible Array.

::isGreaterThanOrEqual(other)

Argument Description

other

A Point or point-compatible Array.

Return values

Returns a Boolean indicating whether this point follows or is equal to the given Point or point-compatible Array.

Operations

::freeze()

Makes this point immutable and returns itself.

Return values

Returns an immutable version of this Point

::translate(other)

Build and return a new point by adding the rows and columns of the given point.

Argument Description

other

A Point whose row and column will be added to this point’s row and column to build the returned point.

Return values

Returns a Point.

::traverse(other)

Build and return a new Point by traversing the rows and columns specified by the given point.

This method differs from the direct, vector-style addition offered by ::translate. Rather than adding the rows and columns directly, it derives the new point from traversing in “typewriter space”. At the end of every row traversed, a carriage return occurs that returns the columns to 0 before continuing the traversal.

Argument Description

other

A Point providing the rows and columns to traverse by.

Return values

Returns a Point.

Conversion

::toArray()

Return values

Returns an array of this point’s row and column.

::serialize()

Return values

Returns an array of this point’s row and column.

::toString()

Return values

Returns a string representation of the point.

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