code: function(/**Number*/ lineIndex) {
  			var mode = this.mode, lines = this.lines;
  			var i, line;
  			for (i = lineIndex-1; i >= 0; i--) {
  				line = lines[i];
  				if (line.eolState || lineIndex - i > MAX_BACKTRACK) {
  					// CodeMirror optimizes by using least-indented line; we just use this line
  					break;
  				}
  			}
  			var state = (i >= 0) && lines[i].eolState;
  			if (state) {
  				state = this.codeMirror.copyState(mode, state);
  				// Highlight from i up to lineIndex-1
  				i = Math.max(0, i);
  				for (var j = i; j < lineIndex-1; j++) {
  					line = lines[j];
  					this.highlightLine(j, line, state);
  					line.eolState = this.codeMirror.copyState(mode, state);
  				}
  				return state; // is a copy of lines[lineIndex - 1].eolState
  			} else {
  				return mode.startState();
  			}
  		}
docs: Returns the state we can use for parsing from the start of the <i><code>lineIndex</code></i>th line.
  @returns {Object} The state. This object is safe to mutate.