@herb-tools/node 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/binding.gyp +1 -0
  2. package/dist/herb-node.cjs +1 -1
  3. package/dist/herb-node.esm.js +1 -1
  4. package/extension/error_helpers.cpp +204 -1
  5. package/extension/error_helpers.h +8 -1
  6. package/extension/extension_helpers.cpp +3 -1
  7. package/extension/herb.cpp +11 -0
  8. package/extension/libherb/analyze/action_view/attribute_extraction_helpers.c +14 -1
  9. package/extension/libherb/analyze/action_view/content_tag.c +19 -11
  10. package/extension/libherb/analyze/action_view/link_to.c +25 -1
  11. package/extension/libherb/analyze/action_view/registry.c +23 -0
  12. package/extension/libherb/analyze/action_view/tag.c +14 -8
  13. package/extension/libherb/analyze/action_view/tag_helper_handler.h +2 -0
  14. package/extension/libherb/analyze/action_view/tag_helpers.c +78 -11
  15. package/extension/libherb/analyze/analyze.c +3 -0
  16. package/extension/libherb/analyze/missing_end.c +1 -1
  17. package/extension/libherb/analyze/prism_annotate.c +4 -2
  18. package/extension/libherb/analyze/render_nodes.c +761 -0
  19. package/extension/libherb/analyze/render_nodes.h +11 -0
  20. package/extension/libherb/analyze/transform.c +8 -1
  21. package/extension/libherb/ast_nodes.c +98 -1
  22. package/extension/libherb/ast_nodes.h +38 -1
  23. package/extension/libherb/ast_pretty_print.c +75 -1
  24. package/extension/libherb/ast_pretty_print.h +1 -1
  25. package/extension/libherb/errors.c +380 -1
  26. package/extension/libherb/errors.h +59 -1
  27. package/extension/libherb/include/analyze/action_view/tag_helper_handler.h +2 -0
  28. package/extension/libherb/include/analyze/render_nodes.h +11 -0
  29. package/extension/libherb/include/ast_nodes.h +38 -1
  30. package/extension/libherb/include/ast_pretty_print.h +1 -1
  31. package/extension/libherb/include/errors.h +59 -1
  32. package/extension/libherb/include/parser.h +1 -0
  33. package/extension/libherb/include/util/hb_foreach.h +1 -1
  34. package/extension/libherb/include/version.h +1 -1
  35. package/extension/libherb/parser.c +1 -0
  36. package/extension/libherb/parser.h +1 -0
  37. package/extension/libherb/parser_match_tags.c +21 -1
  38. package/extension/libherb/util/hb_foreach.h +1 -1
  39. package/extension/libherb/version.h +1 -1
  40. package/extension/libherb/visitor.c +21 -1
  41. package/extension/nodes.cpp +143 -1
  42. package/extension/nodes.h +3 -1
  43. package/package.json +2 -2
  44. package/CHANGELOG.md +0 -19
@@ -168,6 +168,7 @@ static void collect_prism_nodes(pm_node_t* node, hb_narray_T* list) {
168
168
  static token_T* get_content_token(const AST_NODE_T* node) {
169
169
  switch (node->type) {
170
170
  case AST_ERB_CONTENT_NODE: return ((AST_ERB_CONTENT_NODE_T*) node)->content;
171
+ case AST_ERB_RENDER_NODE: return ((AST_ERB_RENDER_NODE_T*) node)->content;
171
172
  case AST_ERB_IF_NODE: return ((AST_ERB_IF_NODE_T*) node)->content;
172
173
  case AST_ERB_BLOCK_NODE: return ((AST_ERB_BLOCK_NODE_T*) node)->content;
173
174
  case AST_ERB_CASE_NODE: return ((AST_ERB_CASE_NODE_T*) node)->content;
@@ -184,6 +185,7 @@ static token_T* get_content_token(const AST_NODE_T* node) {
184
185
  static void set_prism_node(AST_NODE_T* node, herb_prism_node_T prism_ref) {
185
186
  switch (node->type) {
186
187
  case AST_ERB_CONTENT_NODE: ((AST_ERB_CONTENT_NODE_T*) node)->prism_node = prism_ref; break;
188
+ case AST_ERB_RENDER_NODE: ((AST_ERB_RENDER_NODE_T*) node)->prism_node = prism_ref; break;
187
189
  case AST_ERB_IF_NODE: ((AST_ERB_IF_NODE_T*) node)->prism_node = prism_ref; break;
188
190
  case AST_ERB_BLOCK_NODE: ((AST_ERB_BLOCK_NODE_T*) node)->prism_node = prism_ref; break;
189
191
  case AST_ERB_CASE_NODE: ((AST_ERB_CASE_NODE_T*) node)->prism_node = prism_ref; break;
@@ -232,7 +234,7 @@ static bool annotate_visitor(const AST_NODE_T* node, void* data) {
232
234
  pm_parser_t* parser;
233
235
  hb_narray_T* node_list;
234
236
 
235
- if (node->type == AST_ERB_CONTENT_NODE || context->prism_nodes_deep) {
237
+ if (node->type == AST_ERB_CONTENT_NODE || node->type == AST_ERB_RENDER_NODE || context->prism_nodes_deep) {
236
238
  parser = context->parser;
237
239
  node_list = context->node_list;
238
240
  } else {
@@ -248,7 +250,7 @@ static bool annotate_visitor(const AST_NODE_T* node, void* data) {
248
250
  }
249
251
 
250
252
  static bool collect_content_ranges_visitor(const AST_NODE_T* node, void* data) {
251
- if (node->type != AST_ERB_CONTENT_NODE) { return true; }
253
+ if (node->type != AST_ERB_CONTENT_NODE && node->type != AST_ERB_RENDER_NODE) { return true; }
252
254
 
253
255
  hb_narray_T* ranges = (hb_narray_T*) data;
254
256
  token_T* content = get_content_token(node);