whole_func_string: function (lineNum, attributeName){
          var _ = require('ep_etherpad-lite/static/js/underscore');
          if(!_.isArray(attributeName)){
              attributeName = [attributeName];
          }
          var allAttribs = this.getAllAttributesOnLine(lineNum);
          return _.filter(allAttribs, function(a){
              return _.contains(attributeName, a.name);
          });
      }
func_code_string: function (lineNum, attributeName){
          var _ = require('ep_etherpad-lite/static/js/underscore');
          if(!_.isArray(attributeName)){
              attributeName = [attributeName];
          }
          var allAttribs = this.getAllAttributesOnLine(lineNum);
          return _.filter(allAttribs, function(a){
              return _.contains(attributeName, a.name);
          });
      }
func_documentation_string: Returns attributes filtered out by name of attribute on selected line
  TIP: It should be called from stack callWithAce (inside)
  @example: You can use Cristo.callWithAce(function(ace){Cristo.getAttributesOnLineByRange()},'myCall')
  @param lineNum {Number}
  @param attributeName {String}
  @see Cristo.getAllAttributesOnLine
  @returns {Array} name, value, offset, limit, charStart, charEnd, remove(), changeValue()