@types/atom
Version:
TypeScript definitions for atom
269 lines (213 loc) • 10.9 kB
TypeScript
import { FileEncoding, Invisibles } from "../index";
// NOTE: the config schema with these defaults can be found here:
// https://github.com/atom/atom/blob/v1.40.0/src/config-schema.js
/**
* Allows you to strongly type Atom configuration variables. Additional key:value
* pairings merged into this interface will result in configuration values under
* the value of each key being templated by the type of the associated value.
*/
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface ConfigValues {
// NOTE: this is intentionally left empty, extended via ambient declarations
}
// NOTE: A hack to make ConfigValues extensible
// eslint-disable-next-line @definitelytyped/no-declare-current-package
declare module "atom" {
interface ConfigValues {
/**
* List of glob patterns. Files and directories matching these patterns will be
* ignored by some packages, such as the fuzzy finder and tree view. Individual
* packages might have additional config settings for ignoring names.
*/
"core.ignoredNames": string[];
/**
* Files and directories ignored by the current project's VCS system will be ignored
* by some packages, such as the fuzzy finder and find and replace. For example,
* projects using Git have these paths defined in the .gitignore file. Individual
* packages might have additional config settings for ignoring VCS ignored files and
* folders.
*/
"core.excludeVcsIgnoredPaths": boolean;
/**
* Follow symbolic links when searching files and when opening files with the fuzzy
* finder.
*/
"core.followSymlinks": boolean;
/** List of names of installed packages which are not loaded at startup. */
"core.disabledPackages": string[];
/** List of names of installed packages which are not automatically updated. */
"core.versionPinnedPackages": string[];
/**
* Associates scope names (e.g. "source.coffee") with arrays of file extensions
* and file names (e.g. ["Cakefile", ".coffee2"]).
*/
"core.customFileTypes": {
[key: string]: string[];
};
/** Names of UI and syntax themes which will be used when Atom starts. */
"core.themes": string[];
/**
* Trigger the system's beep sound when certain actions cannot be executed or
* there are no results.
*/
"core.audioBeep": boolean;
/** Close corresponding editors when a file is deleted outside Atom. */
"core.closeDeletedFileTabs": boolean;
/** When the last tab of a pane is closed, remove that pane as well. */
"core.destroyEmptyPanes": boolean;
/**
* When a window with no open tabs or panes is given the 'Close Tab' command,
* close that window.
*/
"core.closeEmptyWindows": boolean;
/** Default character set encoding to use when reading and writing files. */
"core.fileEncoding": FileEncoding;
/**
* When checked opens an untitled editor when loading a blank environment (such as
* with 'File > New Window' or when "Restore Previous Windows On Start" is unchecked);
* otherwise, no editor is opened when loading a blank environment.
* This setting has no effect when restoring a previous state.
*/
"core.openEmptyEditorOnStart": boolean;
/**
* When selected 'no', a blank environment is loaded. When selected 'yes' and Atom
* is started from the icon or `atom` by itself from the command line, restores the
* last state of all Atom windows; otherwise a blank environment is loaded. When
* selected 'always', restores the last state of all Atom windows always, no matter
* how Atom is started.
*/
"core.restorePreviousWindowsOnStart": "no" | "yes" | "always";
/** How many recent projects to show in the Reopen Project menu. */
"core.reopenProjectMenuCount": number;
/** Automatically update Atom when a new release is available. */
"core.automaticallyUpdate": boolean;
/** Use detected proxy settings when calling the `apm` command-line tool. */
"core.useProxySettingsWhenCallingApm": boolean;
/**
* Allow items to be previewed without adding them to a pane permanently, such as
* when single clicking files in the tree view.
*/
"core.allowPendingPaneItems": boolean;
/**
* Allow usage statistics and exception reports to be sent to the Atom team to help
* improve the product.
*/
"core.telemetryConsent": "limited" | "no" | "undecided";
/** Warn before opening files larger than this number of megabytes. */
"core.warnOnLargeFileLimit": number;
/**
* Choose the underlying implementation used to watch for filesystem changes. Emulating
* changes will miss any events caused by applications other than Atom, but may help
* prevent crashes or freezes.
*/
"core.fileSystemWatcher": "native" | "experimental" | "poll" | "atom";
/** Use the new Tree-sitter parsing system for supported languages. */
"core.useTreeSitterParsers": boolean;
/**
* Specify whether Atom should use the operating system's color profile (recommended)
* or an alternative color profile.
*/
"core.colorProfile": "default" | "srgb";
"editor.commentStart": string | null;
"editor.commentEnd": string | null;
"editor.increaseIndentPattern": string | null;
"editor.decreaseIndentPattern": string | null;
"editor.foldEndPattern": string | null;
/** The name of the font family used for editor text. */
"editor.fontFamily": string;
/** Height in pixels of editor text. */
"editor.fontSize": number;
/** Height of editor lines, as a multiplier of font size. */
"editor.lineHeight": string | number;
/** Show cursor while there is a selection. */
"editor.showCursorOnSelection": boolean;
/** Render placeholders for invisible characters, such as tabs, spaces and newlines. */
"editor.showInvisibles": boolean;
/** Show indentation indicators in the editor. */
"editor.showIndentGuide": boolean;
/** Show line numbers in the editor's gutter. */
"editor.showLineNumbers": boolean;
/** Skip over tab-length runs of leading whitespace when moving the cursor. */
"editor.atomicSoftTabs": boolean;
/** Automatically indent the cursor when inserting a newline. */
"editor.autoIndent": boolean;
/** Automatically indent pasted text based on the indentation of the previous line. */
"editor.autoIndentOnPaste": boolean;
/** A string of non-word characters to define word boundaries. */
"editor.nonWordCharacters": string;
/**
* Identifies the length of a line which is used when wrapping text with the
* `Soft Wrap At Preferred Line Length` setting enabled, in number of characters.
*/
"editor.preferredLineLength": number;
/**
* Defines the maximum width of the editor window before soft wrapping is enforced,
* in number of characters.
*/
"editor.maxScreenLineLength": number;
/** Number of spaces used to represent a tab. */
"editor.tabLength": number;
/**
* Wraps lines that exceed the width of the window. When `Soft Wrap At Preferred
* Line Length` is set, it will wrap to the number of characters defined by the
* `Preferred Line Length` setting.
*/
"editor.softWrap": boolean;
/**
* If the `Tab Type` config setting is set to "auto" and autodetection of tab type
* from buffer content fails, then this config setting determines whether a soft tab
* or a hard tab will be inserted when the Tab key is pressed.
*/
"editor.softTabs": boolean;
/**
* Determine character inserted when Tab key is pressed. Possible values: "auto",
* "soft" and "hard". When set to "soft" or "hard", soft tabs (spaces) or hard tabs
* (tab characters) are used. When set to "auto", the editor auto-detects the tab
* type based on the contents of the buffer (it uses the first leading whitespace
* on a non-comment line), or uses the value of the Soft Tabs config setting if
* auto-detection fails.
*/
"editor.tabType": "auto" | "soft" | "hard";
/**
* Instead of wrapping lines to the window's width, wrap lines to the number of
* characters defined by the `Preferred Line Length` setting. This will only take
* effect when the soft wrap config setting is enabled globally or for the current
* language.
* **Note:** If you want to hide the wrap guide (the vertical line) you can disable
* the `wrap-guide` package.
*/
"editor.softWrapAtPreferredLineLength": boolean;
/**
* When soft wrap is enabled, defines length of additional indentation applied to
* wrapped lines, in number of characters.
*/
"editor.softWrapHangingIndent": number;
/** Determines how fast the editor scrolls when using a mouse or trackpad. */
"editor.scrollSensitivity": number;
/** Allow the editor to be scrolled past the end of the last line. */
"editor.scrollPastEnd": boolean;
/**
* Time interval in milliseconds within which text editing operations will be
* grouped together in the undo history.
*/
"editor.undoGroupingInterval": number;
/**
* Show confirmation dialog when checking out the HEAD revision and discarding
* changes to current file since last commit.
*/
"editor.confirmCheckoutHeadRevision": boolean;
/**
* A hash of characters Atom will use to render whitespace characters. Keys are
* whitespace character types, values are rendered characters (use value false to
* turn off individual whitespace character types).
*/
"editor.invisibles": Invisibles;
/**
* Change the editor font size when pressing the Ctrl key and scrolling the mouse
* up/down.
*/
"editor.zoomFontWhenCtrlScrolling": boolean;
// tslint:disable-next-line:no-any
[key: string]: any;
}
}