whole_func_string: function(content, pos, isBackward) {
  			var len = content.length, i;
  			var range = require('range');
  			
  			// max extraction length. I don't think there may be tags larger 
  			// than 2000 characters length
  			var maxLen = Math.min(2000, len);
  			
  			/** @type Range */
  			var r = null;
  			
  			var match = function(pos) {
  				var m;
  				if (content.charAt(pos) == '<' && (m = content.substr(pos, maxLen).match(startTag)))
  					return range.create(pos, m[0]);
  			};
  			
  			// lookup backward, in case we are inside tag already
  			for (i = pos; i >= 0; i--) {
  				if (r = match(i)) break;
  			}
  			
  			if (r && (r.inside(pos) || isBackward))
  				return r;
  			
  			if (!r && isBackward)
  				return null;
  			
  			// search forward
  			for (i = pos; i < len; i++) {
  				if (r = match(i))
  					return r;
  			}
  		}
func_code_string: function(content, pos, isBackward) {
  			var len = content.length, i;
  			var range = require('range');
  			
  			// max extraction length. I don't think there may be tags larger 
  			// than 2000 characters length
  			var maxLen = Math.min(2000, len);
  			
  			/** @type Range */
  			var r = null;
  			
  			var match = function(pos) {
  				var m;
  				if (content.charAt(pos) == '<' && (m = content.substr(pos, maxLen).match(startTag)))
  					return range.create(pos, m[0]);
  			};
  			
  			// lookup backward, in case we are inside tag already
  			for (i = pos; i >= 0; i--) {
  				if (r = match(i)) break;
  			}
  			
  			if (r && (r.inside(pos) || isBackward))
  				return r;
  			
  			if (!r && isBackward)
  				return null;
  			
  			// search forward
  			for (i = pos; i < len; i++) {
  				if (r = match(i))
  					return r;
  			}
  		}
func_documentation_string: Extracts nearest HTML tag range from <code>content</code>, starting at
  <code>pos</code> position
  @param {String} content
  @param {Number} pos
  @param {Boolean} isBackward
  @returns {Range}