docs: function( editor, name, isIndent ) {
  			this.name = name;
  			this.editor = editor;
  
  			/**
  			 * An object of jobs handled by the command. Each job consists
  			 * of two functions: `refresh` and `exec` as well as the execution priority.
  			 *
  			 *	* The `refresh` function determines whether a job is doable for
  			 *	  a particular context. These functions are executed in the
  			 *	  order of priorities, one by one, for all plugins that registered
  			 *	  jobs. As jobs are related to generic commands, refreshing
  			 *	  occurs when the global command is firing the `refresh` event.
  			 *
  			 *	  **Note**: This function must return either {@link CKEDITOR#TRISTATE_DISABLED}
  			 *	  or {@link CKEDITOR#TRISTATE_OFF}.
  			 *
  			 *	* The `exec` function modifies the DOM if possible. Just like
  			 *	  `refresh`, `exec` functions are executed in the order of priorities
  			 *	  while the generic command is executed. This function is not executed
  			 *	  if `refresh` for this job returned {@link CKEDITOR#TRISTATE_DISABLED}.
  			 *
  			 *	  **Note**: This function must return a Boolean value, indicating whether it
  			 *	  was successful. If a job was successful, then no other jobs are being executed.
  			 *
  			 * Sample definition:
  			 *
  			 *		command.jobs = {
  			 *			// Priority = 20.
  			 *			'20': {
  			 *				refresh( editor, path ) {
  			 *					if ( condition )
  			 *						return CKEDITOR.TRISTATE_OFF;
  			 *					else
  			 *						return CKEDITOR.TRISTATE_DISABLED;
  			 *				},
  			 *				exec( editor ) {
  			 *					// DOM modified! This was OK.
  			 *					return true;
  			 *				}
  			 *			},
  			 *			// Priority = 60. This job is done later.
  			 *			'60': {
  			 *				// Another job.
  			 *			}
  			 *		};
  			 *
  			 * For additional information, please check comments for
  			 * the `setupGenericListeners` function.
  			 *
  			 * @readonly
  			 * @property {Object} [={}]
  			 */
  			this.jobs = {};
  
  			/**
  			 * Determines whether the editor that the command belongs to has
  			 * {@link CKEDITOR.config#enterMode config.enterMode} set to {@link CKEDITOR#ENTER_BR}.
  			 *
  			 * @readonly
  			 * @see CKEDITOR.config#enterMode
  			 * @property {Boolean} [=false]
  			 */
  			this.enterBr = editor.config.enterMode == CKEDITOR.ENTER_BR;
  
  			/**
  			 * Determines whether the command belongs to the indentation family.
  			 * Otherwise it is assumed to be an outdenting command.
  			 *
  			 * @readonly
  			 * @property {Boolean} [=false]
  			 */
  			this.isIndent = !!isIndent;
  
  			/**
  			 * The name of the global command related to this one.
  			 *
  			 * @readonly
  			 */
  			this.relatedGlobal = isIndent ? 'indent' : 'outdent';
  
  			/**
  			 * A keystroke associated with this command (*Tab* or *Shift+Tab*).
  			 *
  			 * @readonly
  			 */
  			this.indentKey = isIndent ? 9 : CKEDITOR.SHIFT + 9;
  
  			/**
  			 * Stores created markers for the command so they can eventually be
  			 * purged after the `exec` function is run.
  			 */
  			this.database = {};
  		}