whole_func_string: function(ast) {
        let detected = [];
  
        var lastChild = ast.last();
        if (lastChild.is('space') &&
            lastChild.content !== '\n' &&
            lastChild.content.match(/^[ \n\t]+$/)) {
          detected.push(false);
        }
  
        ast.traverseByType('space', function(space) {
          if (space.content.match(/[ \t]\n/)) detected.push(false);
        });
  
        return detected;
      }
func_code_string: function(ast) {
        let detected = [];
  
        var lastChild = ast.last();
        if (lastChild.is('space') &&
            lastChild.content !== '\n' &&
            lastChild.content.match(/^[ \n\t]+$/)) {
          detected.push(false);
        }
  
        ast.traverseByType('space', function(space) {
          if (space.content.match(/[ \t]\n/)) detected.push(false);
        });
  
        return detected;
      }
func_documentation_string: Detects the value of an option at the tree node.
  This option is treated as `true` by default, but any trailing
  space would invalidate it.
  
  @param {node} ast