code: function _computeProposalsFromAst(ast, params) {
  			var node = Util.findCssNodeAtOffset(ast, params.offset);
  			if(node) {
  				if (this.inPropertyValue(node)){
  					return this.getPropertyValueProposals(params, node);
  				} else if (this.inProperty(node)){
  					return this.getPropertyProposals(params);
  				} else if (this.inConditionalAtRule(node)){
  					return this.getConditionalAtRuleProposals(params);
  				} else if (this.inSelector(node)){
  					return this.getSelectorProposals(params, node);
  				} else if (this.inRoot(node)){
  					return this.getRootProposals(params);
  				}
  				// TODO This allows property completions inside of @page and other at-rules
  			}
  			return [];			
  		}
docs: Computes the completions from the given AST and parameter context
  @param {Object} ast The AST to inspect
  @param {Object} params The paramter context
  @returns {Array.<Object>} The array of proposal objects or an empty array, never null