whole_func_string: function(ast) {
        ast.traverseByType('block', function(node) {
          oneline = true;
  
          var dict = {};
  
          // Gathering Info
          walk({
            node: node,
            selector: getPropertyName,
            getExtraSymbols: extraIndentProperty,
            payload: function(info) {
              updateDict(info, dict);
            }
          });
  
          walk({
            node: node,
            selector: getValName,
            namespaceSelector: getPropertyName,
            getExtraSymbols: extraIndentVal,
            payload: function(info) {
              updateDict(info, dict);
            }
          });
  
          if (oneline && ast.syntax !== 'sass') return;
  
          // Update nodes
          walk({
            node: node,
            selector: getValName,
            namespaceSelector: getPropertyName,
            getExtraSymbols: extraIndentVal,
            payload: function(info, i) {
              for (var x = node.get(i).length; x--;) {
                if (node.get(i).get(x).is('value')) break;
              }
  
              let prevNode = node.get(i).get(x - 1);
              if (!prevNode.is('space')) {
                var space = gonzales.createNode({
                  type: 'space',
                  content: ''
                });
                node.get(i).insert(x, space);
                ++x;
              }
  
              let content = node.get(i).get(x - 1).content;
              let updatedIndent = updateIndent(info, dict, content);
              node.get(i).get(x - 1).content = updatedIndent;
            }
          });
  
          if (ast.syntax === 'sass') return;
  
          walk({
            node: node,
            selector: getPropertyName,
            getExtraSymbols: extraIndentProperty,
            payload: function(info, i) {
              // `node.get(i - 1)` can be either space or comment:
              var whitespaceNode = node.get(i - 1);
              if (!whitespaceNode) return;
              // If it's a comment, insert an empty space node:
              if (!whitespaceNode.is('space')) {
                whitespaceNode = gonzales.createNode({
                  type: 'space',
                  content: ''
                });
                node.insert(i - 1, whitespaceNode);
              }
              let content = whitespaceNode.content;
              let updatedContent = updateIndent(info, dict, content);
              whitespaceNode.content = updatedContent;
            }
          });
        });
      }
func_code_string: function(ast) {
        ast.traverseByType('block', function(node) {
          oneline = true;
  
          var dict = {};
  
          // Gathering Info
          walk({
            node: node,
            selector: getPropertyName,
            getExtraSymbols: extraIndentProperty,
            payload: function(info) {
              updateDict(info, dict);
            }
          });
  
          walk({
            node: node,
            selector: getValName,
            namespaceSelector: getPropertyName,
            getExtraSymbols: extraIndentVal,
            payload: function(info) {
              updateDict(info, dict);
            }
          });
  
          if (oneline && ast.syntax !== 'sass') return;
  
          // Update nodes
          walk({
            node: node,
            selector: getValName,
            namespaceSelector: getPropertyName,
            getExtraSymbols: extraIndentVal,
            payload: function(info, i) {
              for (var x = node.get(i).length; x--;) {
                if (node.get(i).get(x).is('value')) break;
              }
  
              let prevNode = node.get(i).get(x - 1);
              if (!prevNode.is('space')) {
                var space = gonzales.createNode({
                  type: 'space',
                  content: ''
                });
                node.get(i).insert(x, space);
                ++x;
              }
  
              let content = node.get(i).get(x - 1).content;
              let updatedIndent = updateIndent(info, dict, content);
              node.get(i).get(x - 1).content = updatedIndent;
            }
          });
  
          if (ast.syntax === 'sass') return;
  
          walk({
            node: node,
            selector: getPropertyName,
            getExtraSymbols: extraIndentProperty,
            payload: function(info, i) {
              // `node.get(i - 1)` can be either space or comment:
              var whitespaceNode = node.get(i - 1);
              if (!whitespaceNode) return;
              // If it's a comment, insert an empty space node:
              if (!whitespaceNode.is('space')) {
                whitespaceNode = gonzales.createNode({
                  type: 'space',
                  content: ''
                });
                node.insert(i - 1, whitespaceNode);
              }
              let content = whitespaceNode.content;
              let updatedContent = updateIndent(info, dict, content);
              whitespaceNode.content = updatedContent;
            }
          });
        });
      }
func_documentation_string: Processes tree node.
  
  @param {node} ast