@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.
- package/binding.gyp +1 -0
- package/dist/herb-node.cjs +1 -1
- package/dist/herb-node.esm.js +1 -1
- package/extension/error_helpers.cpp +204 -1
- package/extension/error_helpers.h +8 -1
- package/extension/extension_helpers.cpp +3 -1
- package/extension/herb.cpp +11 -0
- package/extension/libherb/analyze/action_view/attribute_extraction_helpers.c +14 -1
- package/extension/libherb/analyze/action_view/content_tag.c +19 -11
- package/extension/libherb/analyze/action_view/link_to.c +25 -1
- package/extension/libherb/analyze/action_view/registry.c +23 -0
- package/extension/libherb/analyze/action_view/tag.c +14 -8
- package/extension/libherb/analyze/action_view/tag_helper_handler.h +2 -0
- package/extension/libherb/analyze/action_view/tag_helpers.c +78 -11
- package/extension/libherb/analyze/analyze.c +3 -0
- package/extension/libherb/analyze/missing_end.c +1 -1
- package/extension/libherb/analyze/prism_annotate.c +4 -2
- package/extension/libherb/analyze/render_nodes.c +761 -0
- package/extension/libherb/analyze/render_nodes.h +11 -0
- package/extension/libherb/analyze/transform.c +8 -1
- package/extension/libherb/ast_nodes.c +98 -1
- package/extension/libherb/ast_nodes.h +38 -1
- package/extension/libherb/ast_pretty_print.c +75 -1
- package/extension/libherb/ast_pretty_print.h +1 -1
- package/extension/libherb/errors.c +380 -1
- package/extension/libherb/errors.h +59 -1
- package/extension/libherb/include/analyze/action_view/tag_helper_handler.h +2 -0
- package/extension/libherb/include/analyze/render_nodes.h +11 -0
- package/extension/libherb/include/ast_nodes.h +38 -1
- package/extension/libherb/include/ast_pretty_print.h +1 -1
- package/extension/libherb/include/errors.h +59 -1
- package/extension/libherb/include/parser.h +1 -0
- package/extension/libherb/include/util/hb_foreach.h +1 -1
- package/extension/libherb/include/version.h +1 -1
- package/extension/libherb/parser.c +1 -0
- package/extension/libherb/parser.h +1 -0
- package/extension/libherb/parser_match_tags.c +21 -1
- package/extension/libherb/util/hb_foreach.h +1 -1
- package/extension/libherb/version.h +1 -1
- package/extension/libherb/visitor.c +21 -1
- package/extension/nodes.cpp +143 -1
- package/extension/nodes.h +3 -1
- package/package.json +2 -2
- 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);
|