code: function(server, options) { //$NON-NLS-1$
  	    return {
  	      defs : defs,
  	      passes: {
  	      	/**
  	      	 * @callback
  	      	 */
  	      	completion: function(file, query) {
  	      		cachedQuery = query;
  	      	},
  	      	/**
  	      	 * @callback
  	      	 */
  	      	variableCompletion: function(file, start, end, gather) {
  	      		if(cachedQuery.includeTemplates || cachedQuery.includeTemplates === undefined) {
  		      		var kind = Finder.findCompletionKind(file.ast, end);
  		      		if(kind && kind.kind) {
  			      		var tmpls = Finder.findTemplatesForKind(templates, kind.kind, cachedQuery.ecma ? cachedQuery.ecma : 6);
  			      		tmpls.forEach(function(template) {
  							gather(template.name, null, 0, function(c) {
  								c.template = template.template;
  								c.description = template.description;
  								c.doc = template.doc;
  								c.url = template.url;
  								c.type = 'template'; //$NON-NLS-1$
  								c.ecma = template.ecma;
  								c.origin = 'mysql';
  								c.overwrite = true;
  							});
  						});
  			      	}
  		      	}
  	      	}
  	      }
  	    };
  	}
docs: /* @callback