// This file holds the types that don't belong to a specific file. // Please don't import types from this file directly as its content might change in other versions. import { AtomEnvironment, DecorationOptions, MarkerLayer, Pane, Point, TextEditor } from '../index'; export interface PixelPosition { left: number; top: number; } /** * This custom subclass of CustomEvent exists to provide the ::abortKeyBinding * method, as well as versions of the ::stopPropagation methods that record the * intent to stop propagation so event bubbling can be properly simulated for * detached elements. */ export interface CommandEvent extends CustomEvent { keyBindingAborted: boolean; propagationStopped: boolean; abortKeyBinding(): void; stopPropagation(): CustomEvent; stopImmediatePropagation(): CustomEvent; currentTarget: CurrentTarget; } export interface DecorationPropsChangedEvent { /** Object the old parameters the decoration used to have. */ oldProperties: DecorationOptions; /** Object the new parameters the decoration now has */ newProperties: DecorationOptions; } export interface EditorChangedEvent { /** A Point representing where the change started. */ start: Point; /** A Point representing the replaced extent. */ oldExtent: Point; /** A Point representing the replacement extent. */ newExtent: Point; } export interface FileSavedEvent { /** The path to which the buffer was saved. */ path: string; } export interface FilesystemChangeBasic< Action extends 'created' | 'modified' | 'deleted' | 'renamed' = 'created' | 'modified' | 'deleted' > { /** A string describing the filesystem action that occurred. */ action: Action; /** The absolute path to the filesystem entry that was acted upon. */ path: string; } export interface FilesystemChangeRename extends FilesystemChangeBasic<'renamed'> { /** * For rename events, a string containing the filesystem entry's former * absolute path. */ oldPath: string; } export type FilesystemChange = FilesystemChangeBasic | FilesystemChangeRename; export type FilesystemChangeEvent = FilesystemChange[]; export interface HandleableErrorEvent { /** The error object. */ error: Error; /** * Call this function to indicate you have handled the error. * The error will not be thrown if this function is called. */ handle(): void; } export interface TextEditorObservedEvent { textEditor: TextEditor; pane: Pane; index: number; } export interface BuildEnvironmentOptions { /** * An object responsible for Atom's interaction with the browser process and host OS. * Use buildDefaultApplicationDelegate for a default instance. */ applicationDelegate?: object | undefined; /** A window global. */ window?: Window | undefined; /** A document global. */ document?: Document | undefined; /** A path to the configuration directory (usually ~/.atom). */ configDirPath?: string | undefined; /** * A boolean indicating whether the Atom environment should save or load state * from the file system. You probably want this to be false. */ enablePersistence?: boolean | undefined; } export interface HistoryTransactionOptions { /** When provided, skip taking snapshot for other selections markerLayers except given one. */ selectionsMarkerLayer?: MarkerLayer | undefined; } export interface HistoryTraversalOptions { /** Restore snapshot of selections marker layer to given selectionsMarkerLayer. */ selectionsMarkerLayer?: MarkerLayer | undefined; } export interface ReadonlyEditOptions { /** Whether the readonly protections on the text editor should be ignored. */ bypassReadOnly?: boolean | undefined; } export interface TextEditOptions { /** If true, all line endings will be normalized to match the editor's current mode. */ normalizeLineEndings?: boolean | undefined; /** * If skip, skips the undo stack for this operation. * @deprecated Call groupLastChanges() on the TextBuffer afterward instead. */ undo?: 'skip' | undefined; } export interface TextInsertionOptions extends TextEditOptions { /** If true, selects the newly added text. */ select?: boolean | undefined; /** If true, indents all inserted text appropriately. */ autoIndent?: boolean | undefined; /** If true, indent newline appropriately. */ autoIndentNewline?: boolean | undefined; /** * If true, decreases indent level appropriately (for example, when a closing * bracket is inserted). */ autoDecreaseIndent?: boolean | undefined; /** * By default, when pasting multiple lines, Atom attempts to preserve the relative * indent level between the first line and trailing lines, even if the indent * level of the first line has changed from the copied text. If this option is * true, this behavior is suppressed. */ preserveTrailingLineIndentation?: boolean | undefined; } /** An interface which all custom test runners should implement. */ export type TestRunner = (params: TestRunnerParams) => Promise; export interface CancellablePromise extends Promise { cancel(): void; } export type FileEncoding = | 'iso88596' // Arabic (ISO 8859-6) | 'windows1256' // Arabic (Windows 1256) | 'iso88594' // Baltic (ISO 8859-4) | 'windows1257' // Baltic (Windows 1257) | 'iso885914' // Celtic (ISO 8859-14) | 'iso88592' // Central European (ISO 8859-2) | 'windows1250' // Central European (Windows 1250) | 'gb18030' // Chinese (GB18030) | 'gbk' // Chinese (GBK) | 'cp950' // Traditional Chinese (Big5) | 'big5hkscs' // Traditional Chinese (Big5-HKSCS) | 'cp866' // Cyrillic (CP 866) | 'iso88595' // Cyrillic (ISO 8859-5) | 'koi8r' // Cyrillic (KOI8-R) | 'koi8u' // Cyrillic (KOI8-U) | 'windows1251' // Cyrillic (Windows 1251) | 'cp437' // DOS (CP 437) | 'cp850' // DOS (CP 850) | 'iso885913' // Estonian (ISO 8859-13) | 'iso88597' // Greek (ISO 8859-7) | 'windows1253' // Greek (Windows 1253) | 'iso88598' // Hebrew (ISO 8859-8) | 'windows1255' // Hebrew (Windows 1255) | 'cp932' // Japanese (CP 932) | 'eucjp' // Japanese (EUC-JP) | 'shiftjis' // Japanese (Shift JIS) | 'euckr' // Korean (EUC-KR) | 'iso885910' // Nordic (ISO 8859-10) | 'iso885916' // Romanian (ISO 8859-16) | 'iso88599' // Turkish (ISO 8859-9) | 'windows1254' // Turkish (Windows 1254) | 'utf8' // Unicode (UTF-8) | 'utf16le' // Unicode (UTF-16 LE) | 'utf16be' // Unicode (UTF-16 BE) | 'windows1258' // Vietnamese (Windows 1258) | 'iso88591' // Western (ISO 8859-1) | 'iso88593' // Western (ISO 8859-3) | 'iso885915' // Western (ISO 8859-15) | 'macroman' // Western (Mac Roman) | 'windows1252'; // Western (Windows 1252) export interface Invisibles { /** * Character used to render newline characters (\n) when the `Show Invisibles` * setting is enabled. */ eol?: boolean | string | undefined; /** * Character used to render leading and trailing space characters when the * `Show Invisibles` setting is enabled. */ space?: boolean | string | undefined; /** * Character used to render hard tab characters (\t) when the `Show Invisibles` * setting is enabled. */ tab?: boolean | string | undefined; /** * Character used to render carriage return characters (for Microsoft-style line * endings) when the `Show Invisibles` setting is enabled. */ cr?: boolean | string | undefined; } export interface TestRunnerParams { /** An array of paths to tests to run. Could be paths to files or directories. */ testPaths: string[]; /** * A function that can be called to construct an instance of the atom global. * No atom global will be explicitly assigned, but you can assign one in your * runner if desired. */ buildAtomEnvironment(options: BuildEnvironmentOptions): AtomEnvironment; /** * A function that builds a default instance of the application delegate, suitable * to be passed as the applicationDelegate parameter to buildAtomEnvironment. */ buildDefaultApplicationDelegate(): object; /** An optional path to a log file to which test output should be logged. */ logFile: string; /** * A boolean indicating whether or not the tests are being run from the command * line via atom --test. */ headless: boolean; }