whole_func_string: function expandGradientOutsideValue(editor, syntax) {
  		var propertyName = prefs.get('css.gradient.defaultProperty');
  		
  		if (!propertyName)
  			return false;
  		
  		// assuming that gradient definition is written on new line,
  		// do a simplified parsing
  		var content = String(editor.getContent());
  		/** @type Range */
  		var lineRange = require('range').create(editor.getCurrentLineRange());
  		
  		// get line content and adjust range with padding
  		var line = lineRange.substring(content)
  			.replace(/^\s+/, function(pad) {
  				lineRange.start += pad.length;
  				return '';
  			})
  			.replace(/\s+$/, function(pad) {
  				lineRange.end -= pad.length;
  				return '';
  			});
  		
  		var css = require('cssResolver');
  		var gradient = module.parse(line);
  		if (gradient) {
  			var props = getPropertiesForGradient(gradient, propertyName);
  			props.push({
  				name: propertyName,
  				value: module.toString(gradient) + '${2}'
  			});
  			
  			var sep = css.getSyntaxPreference('valueSeparator', syntax);
  			var end = css.getSyntaxPreference('propertyEnd', syntax);
  			
  			if (require('preferences').get('css.alignVendor')) {
  				var pads = require('utils').getStringsPads(_.map(props, function(prop) {
  					return prop.value.substring(0, prop.value.indexOf('('));
  				}));
  				_.each(props, function(prop, i) {
  					prop.value = pads[i] + prop.value;
  				});
  			}
  			
  			props = _.map(props, function(item) {
  				return item.name + sep + item.value + end;
  			});
  			
  			editor.replaceContent(props.join('\n'), lineRange.start, lineRange.end);
  			return true;
  		}
  		
  		return false;
  	}
func_code_string: function expandGradientOutsideValue(editor, syntax) {
  		var propertyName = prefs.get('css.gradient.defaultProperty');
  		
  		if (!propertyName)
  			return false;
  		
  		// assuming that gradient definition is written on new line,
  		// do a simplified parsing
  		var content = String(editor.getContent());
  		/** @type Range */
  		var lineRange = require('range').create(editor.getCurrentLineRange());
  		
  		// get line content and adjust range with padding
  		var line = lineRange.substring(content)
  			.replace(/^\s+/, function(pad) {
  				lineRange.start += pad.length;
  				return '';
  			})
  			.replace(/\s+$/, function(pad) {
  				lineRange.end -= pad.length;
  				return '';
  			});
  		
  		var css = require('cssResolver');
  		var gradient = module.parse(line);
  		if (gradient) {
  			var props = getPropertiesForGradient(gradient, propertyName);
  			props.push({
  				name: propertyName,
  				value: module.toString(gradient) + '${2}'
  			});
  			
  			var sep = css.getSyntaxPreference('valueSeparator', syntax);
  			var end = css.getSyntaxPreference('propertyEnd', syntax);
  			
  			if (require('preferences').get('css.alignVendor')) {
  				var pads = require('utils').getStringsPads(_.map(props, function(prop) {
  					return prop.value.substring(0, prop.value.indexOf('('));
  				}));
  				_.each(props, function(prop, i) {
  					prop.value = pads[i] + prop.value;
  				});
  			}
  			
  			props = _.map(props, function(item) {
  				return item.name + sep + item.value + end;
  			});
  			
  			editor.replaceContent(props.join('\n'), lineRange.start, lineRange.end);
  			return true;
  		}
  		
  		return false;
  	}
func_documentation_string: Tries to expand gradient outside CSS value
  @param {IEmmetEditor} editor
  @param {String} syntax