docs: function(jsonOptions, env) {
  			var opts = prepareOptions(jsonOptions || Object.create(null), env);
  			opts.projectLoc = this.projectLocation;
  			if (Array.isArray(opts.loadEagerly) && opts.loadEagerly.length > 0) {
  				var fileLoadPromises = [];
  				this._fileLoadWarnings = [];
  				var filesToLoad = [];
  				for (var i = 0; i < opts.loadEagerly.length; i++) {
  					var filename = opts.loadEagerly[i];
  					var ext = 'js'; //$NON-NLS-1$
  					if (filename.match(/\.html$/)){
  						ext = 'html'; //$NON-NLS-1$
  					} else if (filename.match(/\.htm$/)){
  						ext = 'htm'; //$NON-NLS-1$
  					}
  					if(this.projectLocation) {
  						this.scriptResolver.setSearchLocation(this.projectLocation);
  					}
  					fileLoadPromises.push(this.scriptResolver.getWorkspaceFile(filename, {ext: ext}).then(function(_filename, files) {
  						if (Array.isArray(files) && files.length > 0){
  							if (files.length > 1) {
  								this._fileLoadWarnings.push(i18nUtil.formatMessage(Messages['multipleFileMatchesProblem'], _filename, files[0].location));
  							}
  							filesToLoad.push(files[0].location);
  						} else {
  							this._fileLoadWarnings.push(i18nUtil.formatMessage(Messages['noFileMatchProblem'], _filename));
  						}
  					}.bind(this, filename)));
  				}
  				if (!this._hasValidationProblem){
  					this.registry.getService("orion.page.message").setProgressMessage(Messages['fileMatchProgress']); //$NON-NLS-1$
  				}
  				opts.loadEagerly = filesToLoad;
  				if(fileLoadPromises.length > 0) {
  					return Deferred.all(fileLoadPromises).then(function(){
  						if (!this._hasValidationProblem){  // Don't hide validation warnings
  							this.registry.getService("orion.page.message").close(); //$NON-NLS-1$
  							if (this._fileLoadWarnings.length > 0){
  								var message = "";
  								for (var j=0; j<this._fileLoadWarnings.length && j<10; j++) {
  									message += this._fileLoadWarnings[j] + '<br>'; //$NON-NLS-1$
  								}
  								if (this._fileLoadWarnings.length > 10){
  									message += i18nUtil.formatMessage(Messages['tooManyFileMatchProblems'],this._fileLoadWarnings.length-10) + '<br>'; //$NON-NLS-1$
  								}
  								this._report(Messages['fileMatchProblems'], message);
  							}
  						}
  						this._fileLoadWarnings = [];
  						this.ternWorker.postMessage({request: "start_server", args: {options: opts}}); //$NON-NLS-1$
  					}.bind(this));
  				}
  				this.ternWorker.postMessage({request: "start_server", args: {options: opts}}); //$NON-NLS-1$
  			} else {
  				this.ternWorker.postMessage({request: "start_server", args: {options: opts}}); //$NON-NLS-1$
  			}
  		}