space-after-opening-brace.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var gonzales = require('gonzales-pe');
  2. module.exports = {
  3. name: 'space-after-opening-brace',
  4. runBefore: 'block-indent',
  5. syntax: ['css', 'less', 'scss'],
  6. accepts: {
  7. number: true,
  8. string: /^[ \t\n]*$/
  9. },
  10. /**
  11. * Processes tree node.
  12. *
  13. * @param {node} node
  14. */
  15. process: function(node) {
  16. // If found block node stop at the next one for space check
  17. if (!node.is('block') && !node.is('atrulers')) return;
  18. var value = this.getValue('space-after-opening-brace');
  19. if (node.first() &&
  20. node.first().is('space')) {
  21. node.first().content = value;
  22. } else if (value !== '') {
  23. var space = gonzales.createNode({ type: 'space', content: value });
  24. node.insert(0, space);
  25. }
  26. },
  27. /**
  28. * Detects the value of an option at the tree node.
  29. *
  30. * @param {node} node
  31. */
  32. detect: function(node) {
  33. if (!node.is('block') && !node.is('atrulers')) return;
  34. if (node.first().is('space')) {
  35. return node.first().content;
  36. } else {
  37. return '';
  38. }
  39. }
  40. };