/
githubmirror
/
atom
Обзор
Документация
Войти
/
githubmirror
/
atom
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v1.49.0
src/gutter.js
114 строк
3 KB
Rafael Oleza
Reformat all JS files using prettier
31 май 2019, 19:33
31 май 2019, 19:33
7f3f040
Код
Авторство
О чём код?
const { Emitter } = require('event-kit'); const DefaultPriority = -100; // Extended: Represents a gutter within a {TextEditor}. // // See {TextEditor::addGutter} for information on creating a gutter. module.exports = class Gutter { constructor(gutterContainer, options) { this.gutterContainer = gutterContainer; this.name = options && options.name; this.priority = options && options.priority != null ? options.priority : DefaultPriority; this.visible = options && options.visible != null ? options.visible : true; this.type = options && options.type != null ? options.type : 'decorated'; this.labelFn = options && options.labelFn; this.className = options && options.class; this.onMouseDown = options && options.onMouseDown; this.onMouseMove = options && options.onMouseMove; this.emitter = new Emitter(); } /* Section: Gutter Destruction */ // Essential: Destroys the gutter. destroy() { if (this.name === 'line-number') { throw new Error('The line-number gutter cannot be destroyed.'); } else { this.gutterContainer.removeGutter(this); this.emitter.emit('did-destroy'); this.emitter.dispose(); } } /* Section: Event Subscription */ // Essential: Calls your `callback` when the gutter's visibility changes. // // * `callback` {Function} // * `gutter` The gutter whose visibility changed. // // Returns a {Disposable} on which `.dispose()` can be called to unsubscribe. onDidChangeVisible(callback) { return this.emitter.on('did-change-visible', callback); } // Essential: Calls your `callback` when the gutter is destroyed. // // * `callback` {Function} // // Returns a {Disposable} on which `.dispose()` can be called to unsubscribe. onDidDestroy(callback) { return this.emitter.once('did-destroy', callback); } /* Section: Visibility */ // Essential: Hide the gutter. hide() { if (this.visible) { this.visible = false; this.gutterContainer.scheduleComponentUpdate(); this.emitter.emit('did-change-visible', this); } } // Essential: Show the gutter. show() { if (!this.visible) { this.visible = true; this.gutterContainer.scheduleComponentUpdate(); this.emitter.emit('did-change-visible', this); } } // Essential: Determine whether the gutter is visible. // // Returns a {Boolean}. isVisible() { return this.visible; } // Essential: Add a decoration that tracks a {DisplayMarker}. When the marker moves, // is invalidated, or is destroyed, the decoration will be updated to reflect // the marker's state. // // ## Arguments // // * `marker` A {DisplayMarker} you want this decoration to follow. // * `decorationParams` An {Object} representing the decoration. It is passed // to {TextEditor::decorateMarker} as its `decorationParams` and so supports // all options documented there. // * `type` __Caveat__: set to `'line-number'` if this is the line-number // gutter, `'gutter'` otherwise. This cannot be overridden. // // Returns a {Decoration} object decorateMarker(marker, options) { return this.gutterContainer.addGutterDecoration(this, marker, options); } getElement() { if (this.element == null) this.element = document.createElement('div'); return this.element; } };