docs: function(options) {
          this.$main.addClass([defaultClass, options.customClass, prefix + options.theme].join(' '))
              .html('<div><pre></pre></div><textarea></textarea>');
  
          var w = options.width || this.$main.width(),
              h = options.height || this.$main.height();
  
          w = Math.max(w, 200);
          h = Math.max(h, 52);
  
          this.$main.css({
              width: w,
              height: h
          });
  
          this.$line = this.$main.children('div').css({
              height: h - 10
          });
          this.$lineNumber = this.$main.find('pre');
          this.$textarea = this.$main.children('textarea').css({
              width: w - 36,
              height: h - 12
          });
  
          if (options.disabled) {
              this.disable();
          }
  
          var self = this;
          this.$textarea.on('mouseover.bizTextline', function() {
              $(this).addClass(hoverClass);
          }).on('mouseout.bizTextline', function() {
              $(this).removeClass(hoverClass);
          }).on('focus.bizTextline', function() {
              $(this).addClass(focusClass + options.theme);
          }).on('blur.bizTextline', function() {
              $(this).removeClass(focusClass + options.theme);
          }).on('keyup.bizTextline.render', function(e) {
              self.renderLineNumber(e.target.scrollTop);
          }).on('scroll.bizTextline', function(e) {
              self.scrollLineNumber(e.target.scrollTop);
          });
  
          if (parseInt(options.maxLine, 10) >= 1) {
              this.$textarea.on('keyup.bizTextline.maxLine', function(e) {
                  if (e.keyCode === 13) {
                      var valArray = self.valArray(),
                          length = valArray.length;
                      if (length > options.maxLine) {
                          valArray.splice(options.maxLine, length - options.maxLine);
                          self.valArray(valArray);
                      }
                  }
              });
          }
  
          this.renderLineNumber(0);
  
          if (typeof options.val === 'string') {
              this.val(options.val);
          }
  
          if (jQuery.isArray(options.valArray)) {
              this.valArray(options.valArray);
          }
      }