docs: function getPos(lines, lineNum, code, indicator) {
  
  	var line, min, max, dots = false, prefix = 0;
  	var pos = {};
  
  	// console.log('code', code);
  
  	// handle special cases
  	if (code === '{{{{') {
  		pos.min = 0;
  		pos.max = 4;
  		return pos;
  	} else if (code === '{{{') {
  		pos.min = 0;
  		pos.max = 3;
  		return pos;
  	} else  if (code === '{{') {
  		pos.min = 0;
  		pos.max = 2;
  		return pos;
  	} else if (code.indexOf('{{<') !== -1) {
  		pos.min = lines[lineNum].indexOf('{{<');
  		pos.max = pos.min + 3;
  		return pos;
  	} else if (code === '{{}}') {
  		pos.min = 0;
  		pos.max = 4;
  		return pos;
  	} else if (code.indexOf('{{{}}{') !== -1) {
  		pos.min = lines[lineNum].indexOf('{{{}}}');
  		pos.max = pos.min + 6;
  		return pos;
  	} else if (code.indexOf('{{#}}') !== -1) {
  		pos.min = lines[lineNum].indexOf('{{#}}');
  		pos.max = pos.min + 5;
  		return pos;
  	}
  
  	// trim off extra prefix and suffix from code which
  	// could force us to not find the pos in the line.
  	code = code.substring(0, indicator.length);
  	code = code.replace('...', function() {
  		dots = true;
  		return '';
  	});
  
  	prefix = code.indexOf('{{');
  	line = lines[lineNum];
  	min = line.indexOf(code);
  	min = min + prefix;
  	max = (!dots)
  		? min + indicator.length - 1
  		: min + indicator.length - 4;
  
  	// todo: if (min === max) max = findMax(line, min); // find first ' ' or '}'
  	if (min === max) max++;
  
  	if (min === -1) {
  		return {
  			min: 0,
  			max: 1
  		};
  	} else {
  		return {
  			min: min,
  			max: max
  		};
  	}
  }