import { Disposable, TextEditor } from "../index"; /** Experimental: This global registry tracks registered TextEditors. */ export interface TextEditorRegistry { // Managing Text Editors /** Remove all editors from the registry. */ clear(): void; /** Register a TextEditor. */ add(editor: TextEditor): Disposable; /** Remove the given TextEditor from the registry. */ remove(editor: TextEditor): boolean; /** Keep a TextEditor's configuration in sync with Atom's settings. */ maintainConfig(editor: TextEditor): Disposable; /** * Set a TextEditor's grammar based on its path and content, and continue * to update its grammar as gramamrs are added or updated, or the editor's * file path changes. */ maintainGrammar(editor: TextEditor): Disposable; /** * Force a TextEditor to use a different grammar than the one that would * otherwise be selected for it. */ setGrammarOverride(editor: TextEditor, scopeName: string): void; /** * Retrieve the grammar scope name that has been set as a grammar override * for the given TextEditor. */ getGrammarOverride(editor: TextEditor): string | null; /** Remove any grammar override that has been set for the given TextEditor. */ clearGrammarOverride(editor: TextEditor): void; // Event Subscription /** Invoke the given callback with all the current and future registered TextEditors. */ observe(callback: (editor: TextEditor) => void): Disposable; }