herb 0.8.10-arm-linux-gnu → 0.9.0-arm-linux-gnu

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 (209) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +11 -3
  3. data/README.md +64 -34
  4. data/Rakefile +48 -40
  5. data/config.yml +317 -34
  6. data/ext/herb/error_helpers.c +367 -140
  7. data/ext/herb/error_helpers.h +1 -0
  8. data/ext/herb/extconf.rb +67 -28
  9. data/ext/herb/extension.c +317 -51
  10. data/ext/herb/extension.h +1 -0
  11. data/ext/herb/extension_helpers.c +23 -14
  12. data/ext/herb/extension_helpers.h +2 -2
  13. data/ext/herb/nodes.c +537 -270
  14. data/ext/herb/nodes.h +1 -0
  15. data/herb.gemspec +3 -2
  16. data/lib/herb/3.0/herb.so +0 -0
  17. data/lib/herb/3.1/herb.so +0 -0
  18. data/lib/herb/3.2/herb.so +0 -0
  19. data/lib/herb/3.3/herb.so +0 -0
  20. data/lib/herb/3.4/herb.so +0 -0
  21. data/lib/herb/4.0/herb.so +0 -0
  22. data/lib/herb/ast/helpers.rb +3 -3
  23. data/lib/herb/ast/node.rb +15 -2
  24. data/lib/herb/ast/nodes.rb +1132 -157
  25. data/lib/herb/bootstrap.rb +87 -0
  26. data/lib/herb/cli.rb +341 -31
  27. data/lib/herb/configuration.rb +248 -0
  28. data/lib/herb/defaults.yml +32 -0
  29. data/lib/herb/engine/compiler.rb +78 -11
  30. data/lib/herb/engine/debug_visitor.rb +13 -3
  31. data/lib/herb/engine/error_formatter.rb +13 -9
  32. data/lib/herb/engine/parser_error_overlay.rb +10 -6
  33. data/lib/herb/engine/validator.rb +8 -3
  34. data/lib/herb/engine/validators/nesting_validator.rb +2 -2
  35. data/lib/herb/engine.rb +82 -35
  36. data/lib/herb/errors.rb +563 -88
  37. data/lib/herb/lex_result.rb +1 -0
  38. data/lib/herb/location.rb +7 -3
  39. data/lib/herb/parse_result.rb +12 -2
  40. data/lib/herb/parser_options.rb +57 -0
  41. data/lib/herb/position.rb +1 -0
  42. data/lib/herb/prism_inspect.rb +116 -0
  43. data/lib/herb/project.rb +923 -331
  44. data/lib/herb/range.rb +1 -0
  45. data/lib/herb/token.rb +7 -1
  46. data/lib/herb/version.rb +1 -1
  47. data/lib/herb/visitor.rb +37 -2
  48. data/lib/herb/warnings.rb +6 -1
  49. data/lib/herb.rb +35 -3
  50. data/sig/herb/ast/helpers.rbs +2 -2
  51. data/sig/herb/ast/node.rbs +12 -2
  52. data/sig/herb/ast/nodes.rbs +641 -128
  53. data/sig/herb/bootstrap.rbs +31 -0
  54. data/sig/herb/configuration.rbs +89 -0
  55. data/sig/herb/engine/compiler.rbs +9 -1
  56. data/sig/herb/engine/debug_visitor.rbs +2 -0
  57. data/sig/herb/engine/validator.rbs +5 -1
  58. data/sig/herb/engine.rbs +17 -3
  59. data/sig/herb/errors.rbs +258 -63
  60. data/sig/herb/location.rbs +4 -0
  61. data/sig/herb/parse_result.rbs +4 -2
  62. data/sig/herb/parser_options.rbs +42 -0
  63. data/sig/herb/position.rbs +1 -0
  64. data/sig/herb/prism_inspect.rbs +28 -0
  65. data/sig/herb/range.rbs +1 -0
  66. data/sig/herb/token.rbs +6 -0
  67. data/sig/herb/visitor.rbs +25 -4
  68. data/sig/herb/warnings.rbs +6 -1
  69. data/sig/herb.rbs +14 -0
  70. data/sig/herb_c_extension.rbs +5 -2
  71. data/sig/serialized_ast_errors.rbs +54 -6
  72. data/sig/serialized_ast_nodes.rbs +60 -6
  73. data/src/analyze/action_view/attribute_extraction_helpers.c +290 -0
  74. data/src/analyze/action_view/content_tag.c +70 -0
  75. data/src/analyze/action_view/link_to.c +143 -0
  76. data/src/analyze/action_view/registry.c +60 -0
  77. data/src/analyze/action_view/tag.c +64 -0
  78. data/src/analyze/action_view/tag_helper_node_builders.c +305 -0
  79. data/src/analyze/action_view/tag_helpers.c +748 -0
  80. data/src/analyze/action_view/turbo_frame_tag.c +88 -0
  81. data/src/analyze/analyze.c +882 -0
  82. data/src/{analyzed_ruby.c → analyze/analyzed_ruby.c} +13 -11
  83. data/src/analyze/builders.c +343 -0
  84. data/src/analyze/conditional_elements.c +594 -0
  85. data/src/analyze/conditional_open_tags.c +640 -0
  86. data/src/analyze/control_type.c +250 -0
  87. data/src/{analyze_helpers.c → analyze/helpers.c} +48 -23
  88. data/src/analyze/invalid_structures.c +193 -0
  89. data/src/{analyze_missing_end.c → analyze/missing_end.c} +33 -22
  90. data/src/analyze/parse_errors.c +84 -0
  91. data/src/analyze/prism_annotate.c +397 -0
  92. data/src/{analyze_transform.c → analyze/transform.c} +17 -3
  93. data/src/ast_node.c +17 -7
  94. data/src/ast_nodes.c +662 -387
  95. data/src/ast_pretty_print.c +190 -6
  96. data/src/errors.c +1076 -520
  97. data/src/extract.c +145 -49
  98. data/src/herb.c +52 -34
  99. data/src/html_util.c +241 -12
  100. data/src/include/analyze/action_view/attribute_extraction_helpers.h +36 -0
  101. data/src/include/analyze/action_view/tag_helper_handler.h +41 -0
  102. data/src/include/analyze/action_view/tag_helper_node_builders.h +70 -0
  103. data/src/include/analyze/action_view/tag_helpers.h +38 -0
  104. data/src/include/{analyze.h → analyze/analyze.h} +14 -4
  105. data/src/include/{analyzed_ruby.h → analyze/analyzed_ruby.h} +3 -3
  106. data/src/include/analyze/builders.h +27 -0
  107. data/src/include/analyze/conditional_elements.h +9 -0
  108. data/src/include/analyze/conditional_open_tags.h +9 -0
  109. data/src/include/analyze/control_type.h +14 -0
  110. data/src/include/{analyze_helpers.h → analyze/helpers.h} +4 -2
  111. data/src/include/analyze/invalid_structures.h +11 -0
  112. data/src/include/analyze/prism_annotate.h +16 -0
  113. data/src/include/ast_node.h +11 -5
  114. data/src/include/ast_nodes.h +117 -38
  115. data/src/include/ast_pretty_print.h +5 -0
  116. data/src/include/element_source.h +3 -8
  117. data/src/include/errors.h +148 -55
  118. data/src/include/extract.h +21 -5
  119. data/src/include/herb.h +18 -6
  120. data/src/include/herb_prism_node.h +13 -0
  121. data/src/include/html_util.h +7 -2
  122. data/src/include/io.h +3 -1
  123. data/src/include/lex_helpers.h +29 -0
  124. data/src/include/lexer.h +1 -1
  125. data/src/include/lexer_peek_helpers.h +87 -13
  126. data/src/include/lexer_struct.h +2 -0
  127. data/src/include/location.h +2 -1
  128. data/src/include/parser.h +27 -2
  129. data/src/include/parser_helpers.h +19 -3
  130. data/src/include/pretty_print.h +10 -5
  131. data/src/include/prism_context.h +45 -0
  132. data/src/include/prism_helpers.h +10 -7
  133. data/src/include/prism_serialized.h +12 -0
  134. data/src/include/token.h +16 -4
  135. data/src/include/token_struct.h +10 -3
  136. data/src/include/utf8.h +2 -1
  137. data/src/include/util/hb_allocator.h +78 -0
  138. data/src/include/util/hb_arena.h +6 -1
  139. data/src/include/util/hb_arena_debug.h +12 -1
  140. data/src/include/util/hb_array.h +7 -3
  141. data/src/include/util/hb_buffer.h +6 -4
  142. data/src/include/util/hb_foreach.h +79 -0
  143. data/src/include/util/hb_narray.h +8 -4
  144. data/src/include/util/hb_string.h +56 -9
  145. data/src/include/util.h +6 -3
  146. data/src/include/version.h +1 -1
  147. data/src/io.c +3 -2
  148. data/src/lexer.c +42 -30
  149. data/src/lexer_peek_helpers.c +12 -74
  150. data/src/location.c +2 -2
  151. data/src/main.c +53 -28
  152. data/src/parser.c +783 -247
  153. data/src/parser_helpers.c +110 -23
  154. data/src/parser_match_tags.c +109 -48
  155. data/src/pretty_print.c +29 -24
  156. data/src/prism_helpers.c +30 -27
  157. data/src/ruby_parser.c +2 -0
  158. data/src/token.c +151 -66
  159. data/src/token_matchers.c +0 -1
  160. data/src/utf8.c +7 -6
  161. data/src/util/hb_allocator.c +341 -0
  162. data/src/util/hb_arena.c +81 -56
  163. data/src/util/hb_arena_debug.c +32 -17
  164. data/src/util/hb_array.c +30 -15
  165. data/src/util/hb_buffer.c +17 -21
  166. data/src/util/hb_narray.c +22 -7
  167. data/src/util/hb_string.c +49 -35
  168. data/src/util.c +21 -11
  169. data/src/visitor.c +47 -0
  170. data/templates/ext/herb/error_helpers.c.erb +24 -11
  171. data/templates/ext/herb/error_helpers.h.erb +1 -0
  172. data/templates/ext/herb/nodes.c.erb +50 -16
  173. data/templates/ext/herb/nodes.h.erb +1 -0
  174. data/templates/java/error_helpers.c.erb +1 -1
  175. data/templates/java/nodes.c.erb +30 -8
  176. data/templates/java/org/herb/ast/Errors.java.erb +24 -1
  177. data/templates/java/org/herb/ast/Nodes.java.erb +80 -21
  178. data/templates/javascript/packages/core/src/errors.ts.erb +16 -3
  179. data/templates/javascript/packages/core/src/node-type-guards.ts.erb +3 -1
  180. data/templates/javascript/packages/core/src/nodes.ts.erb +109 -32
  181. data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +13 -4
  182. data/templates/javascript/packages/node/extension/nodes.cpp.erb +43 -4
  183. data/templates/lib/herb/ast/nodes.rb.erb +88 -31
  184. data/templates/lib/herb/errors.rb.erb +15 -3
  185. data/templates/lib/herb/visitor.rb.erb +2 -2
  186. data/templates/rust/src/ast/nodes.rs.erb +97 -44
  187. data/templates/rust/src/errors.rs.erb +2 -1
  188. data/templates/rust/src/nodes.rs.erb +167 -15
  189. data/templates/rust/src/union_types.rs.erb +60 -0
  190. data/templates/rust/src/visitor.rs.erb +81 -0
  191. data/templates/src/{analyze_missing_end.c.erb → analyze/missing_end.c.erb} +9 -6
  192. data/templates/src/{analyze_transform.c.erb → analyze/transform.c.erb} +2 -2
  193. data/templates/src/ast_nodes.c.erb +34 -26
  194. data/templates/src/ast_pretty_print.c.erb +24 -5
  195. data/templates/src/errors.c.erb +60 -54
  196. data/templates/src/include/ast_nodes.h.erb +6 -2
  197. data/templates/src/include/ast_pretty_print.h.erb +5 -0
  198. data/templates/src/include/errors.h.erb +15 -11
  199. data/templates/src/include/util/hb_foreach.h.erb +20 -0
  200. data/templates/src/parser_match_tags.c.erb +10 -4
  201. data/templates/src/visitor.c.erb +2 -2
  202. data/templates/template.rb +204 -29
  203. data/templates/wasm/error_helpers.cpp.erb +9 -5
  204. data/templates/wasm/nodes.cpp.erb +41 -4
  205. metadata +57 -16
  206. data/src/analyze.c +0 -1608
  207. data/src/element_source.c +0 -12
  208. data/src/include/util/hb_system.h +0 -9
  209. data/src/util/hb_system.c +0 -30
@@ -0,0 +1,31 @@
1
+ # Generated from lib/herb/bootstrap.rb with RBS::Inline
2
+
3
+ module Herb
4
+ module Bootstrap
5
+ ROOT_PATH: untyped
6
+
7
+ PRISM_VENDOR_DIR: untyped
8
+
9
+ PRISM_ENTRIES: untyped
10
+
11
+ def self.generate_templates: () -> untyped
12
+
13
+ def self.git_source?: () -> untyped
14
+
15
+ def self.templates_generated?: () -> untyped
16
+
17
+ def self.vendor_prism: (prism_gem_path: untyped) -> untyped
18
+
19
+ def self.prism_vendored?: () -> untyped
20
+
21
+ def self.prism_ast_header_exists?: () -> untyped
22
+
23
+ def self.find_prism_gem_path: () -> untyped
24
+
25
+ def self.generate_prism_templates: () -> untyped
26
+
27
+ def self.find_prism_as_bundler_sibling: () -> untyped
28
+
29
+ def self.find_prism_from_gem_spec: () -> untyped
30
+ end
31
+ end
@@ -0,0 +1,89 @@
1
+ # Generated from lib/herb/configuration.rb with RBS::Inline
2
+
3
+ module Herb
4
+ class Configuration
5
+ CONFIG_FILENAMES: untyped
6
+
7
+ PROJECT_INDICATORS: untyped
8
+
9
+ DEFAULTS_PATH: untyped
10
+
11
+ DEFAULTS: untyped
12
+
13
+ attr_reader config: untyped
14
+
15
+ attr_reader config_path: untyped
16
+
17
+ attr_reader project_root: untyped
18
+
19
+ def initialize: (?untyped project_path) -> untyped
20
+
21
+ def []: (untyped key) -> untyped
22
+
23
+ def dig: (*untyped keys) -> untyped
24
+
25
+ def version: () -> untyped
26
+
27
+ def files: () -> untyped
28
+
29
+ def file_include_patterns: () -> untyped
30
+
31
+ def file_exclude_patterns: () -> untyped
32
+
33
+ def linter: () -> untyped
34
+
35
+ def engine: () -> untyped
36
+
37
+ def enabled_validators: (?untyped overrides) -> untyped
38
+
39
+ def formatter: () -> untyped
40
+
41
+ def include_patterns_for: (untyped tool) -> untyped
42
+
43
+ def exclude_patterns_for: (untyped tool) -> untyped
44
+
45
+ def linter_include_patterns: () -> untyped
46
+
47
+ def linter_exclude_patterns: () -> untyped
48
+
49
+ def formatter_include_patterns: () -> untyped
50
+
51
+ def formatter_exclude_patterns: () -> untyped
52
+
53
+ def enabled_for_path?: (untyped path, untyped tool) -> untyped
54
+
55
+ def linter_enabled_for_path?: (untyped path) -> untyped
56
+
57
+ def formatter_enabled_for_path?: (untyped path) -> untyped
58
+
59
+ def path_excluded?: (untyped path, untyped patterns) -> untyped
60
+
61
+ def path_included?: (untyped path, untyped patterns) -> untyped
62
+
63
+ def find_files: (?untyped search_path) -> untyped
64
+
65
+ def find_files_for_tool: (untyped tool, ?untyped search_path) -> untyped
66
+
67
+ def find_files_for_linter: (?untyped search_path) -> untyped
68
+
69
+ def find_files_for_formatter: (?untyped search_path) -> untyped
70
+
71
+ def self.load: (?untyped project_path) -> untyped
72
+
73
+ def self.default: () -> untyped
74
+
75
+ def self.default_file_patterns: () -> untyped
76
+
77
+ def self.default_exclude_patterns: () -> untyped
78
+
79
+ private
80
+
81
+ def find_config_file: () -> untyped
82
+
83
+ def project_root?: (untyped path) -> untyped
84
+
85
+ def load_config: () -> untyped
86
+
87
+ def deep_merge: (untyped base, untyped override, ?additive_keys: untyped) -> untyped
88
+ end
89
+ end
@@ -13,6 +13,8 @@ module Herb
13
13
 
14
14
  def visit_html_element_node: (untyped node) -> untyped
15
15
 
16
+ def visit_html_conditional_element_node: (untyped node) -> untyped
17
+
16
18
  def visit_html_open_tag_node: (untyped node) -> untyped
17
19
 
18
20
  def visit_html_attribute_node: (untyped node) -> untyped
@@ -23,6 +25,8 @@ module Herb
23
25
 
24
26
  def visit_html_close_tag_node: (untyped node) -> untyped
25
27
 
28
+ def visit_html_omitted_close_tag_node: (untyped node) -> untyped
29
+
26
30
  def visit_html_text_node: (untyped node) -> untyped
27
31
 
28
32
  def visit_literal_node: (untyped node) -> untyped
@@ -73,6 +77,8 @@ module Herb
73
77
 
74
78
  def visit_erb_block_node: (untyped node) -> untyped
75
79
 
80
+ def visit_erb_block_end_node: (untyped node, ?escaped: untyped) -> untyped
81
+
76
82
  def visit_erb_control_with_parts: (untyped node, *untyped parts) -> untyped
77
83
 
78
84
  private
@@ -111,7 +117,7 @@ module Herb
111
117
 
112
118
  def find_token_before_code_sequence: (untyped tokens, untyped whitespace_index) -> untyped
113
119
 
114
- def process_erb_output: (untyped opening, untyped code) -> untyped
120
+ def process_erb_output: (untyped node, untyped opening, untyped code) -> untyped
115
121
 
116
122
  def should_escape_output?: (untyped opening) -> untyped
117
123
 
@@ -119,6 +125,8 @@ module Herb
119
125
 
120
126
  def at_line_start?: () -> untyped
121
127
 
128
+ def preceding_token_ends_with_newline?: () -> untyped
129
+
122
130
  def extract_lspace: () -> untyped
123
131
 
124
132
  def extract_and_remove_lspace!: () -> untyped
@@ -76,6 +76,8 @@ module Herb
76
76
 
77
77
  # TODO: Rewrite using Prism Nodes once available
78
78
  def javascript_tag?: (untyped code) -> untyped
79
+
80
+ def include_debug_disable_comment?: (untyped code) -> untyped
79
81
  end
80
82
  end
81
83
  end
@@ -5,7 +5,11 @@ module Herb
5
5
  class Validator < Herb::Visitor
6
6
  attr_reader diagnostics: untyped
7
7
 
8
- def initialize: () -> untyped
8
+ attr_reader enabled: untyped
9
+
10
+ def initialize: (?enabled: untyped) -> untyped
11
+
12
+ def enabled?: () -> untyped
9
13
 
10
14
  def validate: (untyped node) -> untyped
11
15
 
data/sig/herb/engine.rbs CHANGED
@@ -20,11 +20,19 @@ module Herb
20
20
 
21
21
  attr_reader visitors: untyped
22
22
 
23
+ attr_reader enabled_validators: untyped
24
+
23
25
  ESCAPE_TABLE: untyped
24
26
 
25
27
  class CompilationError < StandardError
26
28
  end
27
29
 
30
+ class InvalidRubyError < CompilationError
31
+ attr_reader compiled_source: untyped
32
+
33
+ def initialize: (untyped message, ?compiled_source: untyped) -> untyped
34
+ end
35
+
28
36
  def initialize: (untyped input, ?untyped properties) -> untyped
29
37
 
30
38
  def self.h: (untyped value) -> untyped
@@ -35,6 +43,10 @@ module Herb
35
43
 
36
44
  def self.css: (untyped value) -> untyped
37
45
 
46
+ def self.comment?: (untyped code) -> untyped
47
+
48
+ def self.heredoc?: (untyped code) -> untyped
49
+
38
50
  def add_text: (untyped text) -> untyped
39
51
 
40
52
  def add_code: (untyped code) -> untyped
@@ -51,7 +63,9 @@ module Herb
51
63
 
52
64
  def add_expression_block_result_escaped: (untyped code) -> untyped
53
65
 
54
- def comment_aware_newline: (untyped code) -> untyped
66
+ def add_expression_block_end: (untyped code, ?escaped: untyped) -> untyped
67
+
68
+ def trailing_newline: (untyped code) -> untyped
55
69
 
56
70
  def add_postamble: (untyped postamble) -> untyped
57
71
 
@@ -65,9 +79,9 @@ module Herb
65
79
 
66
80
  def handle_parser_errors: (untyped parser_errors, untyped input, untyped _ast) -> untyped
67
81
 
68
- def handle_validation_errors: (untyped errors, untyped input) -> untyped
82
+ def handle_validation_errors: (untyped validators, untyped input) -> untyped
69
83
 
70
- def add_validation_overlay: (untyped errors, ?untyped input) -> untyped
84
+ def add_validation_overlay: (untyped validators, ?untyped input) -> untyped
71
85
 
72
86
  def escape_attr: (untyped text) -> untyped
73
87
 
data/sig/herb/errors.rbs CHANGED
@@ -1,16 +1,21 @@
1
1
  # Generated from lib/herb/errors.rb with RBS::Inline
2
2
 
3
3
  module Herb
4
+ # : type serialized_error = {
5
+ # | type: String,
6
+ # | location: serialized_location?,
7
+ # | message: String
8
+ # | }
4
9
  module Errors
5
10
  class Error
6
11
  attr_reader type: String
7
12
 
8
- attr_reader location: Location
13
+ attr_reader location: Location?
9
14
 
10
15
  attr_reader message: String
11
16
 
12
- # : (String, Location, String) -> void
13
- def initialize: (String, Location, String) -> void
17
+ # : (String, Location?, String) -> void
18
+ def initialize: (String, Location?, String) -> void
14
19
 
15
20
  # : () -> serialized_error
16
21
  def to_hash: () -> serialized_error
@@ -31,14 +36,14 @@ module Herb
31
36
  class UnexpectedError < Error
32
37
  include Colors
33
38
 
34
- attr_reader description: String
39
+ attr_reader description: String?
35
40
 
36
- attr_reader expected: String
41
+ attr_reader expected: String?
37
42
 
38
- attr_reader found: String
43
+ attr_reader found: String?
39
44
 
40
- # : (String, Location, String, String, String, String) -> void
41
- def initialize: (String, Location, String, String, String, String) -> void
45
+ # : (String, Location?, String, String, String, String) -> void
46
+ def initialize: (String, Location?, String, String, String, String) -> void
42
47
 
43
48
  # : () -> String
44
49
  def inspect: () -> String
@@ -53,12 +58,12 @@ module Herb
53
58
  class UnexpectedTokenError < Error
54
59
  include Colors
55
60
 
56
- attr_reader expected_type: String
61
+ attr_reader expected_type: String?
57
62
 
58
- attr_reader found: Herb::Token
63
+ attr_reader found: Herb::Token?
59
64
 
60
- # : (String, Location, String, String, Herb::Token) -> void
61
- def initialize: (String, Location, String, String, Herb::Token) -> void
65
+ # : (String, Location?, String, String, Herb::Token) -> void
66
+ def initialize: (String, Location?, String, String, Herb::Token) -> void
62
67
 
63
68
  # : () -> String
64
69
  def inspect: () -> String
@@ -73,10 +78,10 @@ module Herb
73
78
  class MissingOpeningTagError < Error
74
79
  include Colors
75
80
 
76
- attr_reader closing_tag: Herb::Token
81
+ attr_reader closing_tag: Herb::Token?
77
82
 
78
- # : (String, Location, String, Herb::Token) -> void
79
- def initialize: (String, Location, String, Herb::Token) -> void
83
+ # : (String, Location?, String, Herb::Token) -> void
84
+ def initialize: (String, Location?, String, Herb::Token) -> void
80
85
 
81
86
  # : () -> String
82
87
  def inspect: () -> String
@@ -91,10 +96,10 @@ module Herb
91
96
  class MissingClosingTagError < Error
92
97
  include Colors
93
98
 
94
- attr_reader opening_tag: Herb::Token
99
+ attr_reader opening_tag: Herb::Token?
95
100
 
96
- # : (String, Location, String, Herb::Token) -> void
97
- def initialize: (String, Location, String, Herb::Token) -> void
101
+ # : (String, Location?, String, Herb::Token) -> void
102
+ def initialize: (String, Location?, String, Herb::Token) -> void
98
103
 
99
104
  # : () -> String
100
105
  def inspect: () -> String
@@ -109,12 +114,12 @@ module Herb
109
114
  class TagNamesMismatchError < Error
110
115
  include Colors
111
116
 
112
- attr_reader opening_tag: Herb::Token
117
+ attr_reader opening_tag: Herb::Token?
113
118
 
114
- attr_reader closing_tag: Herb::Token
119
+ attr_reader closing_tag: Herb::Token?
115
120
 
116
- # : (String, Location, String, Herb::Token, Herb::Token) -> void
117
- def initialize: (String, Location, String, Herb::Token, Herb::Token) -> void
121
+ # : (String, Location?, String, Herb::Token, Herb::Token) -> void
122
+ def initialize: (String, Location?, String, Herb::Token, Herb::Token) -> void
118
123
 
119
124
  # : () -> String
120
125
  def inspect: () -> String
@@ -126,37 +131,17 @@ module Herb
126
131
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
127
132
  end
128
133
 
129
- class QuotesMismatchError < Error
130
- include Colors
131
-
132
- attr_reader opening_quote: Herb::Token
133
-
134
- attr_reader closing_quote: Herb::Token
135
-
136
- # : (String, Location, String, Herb::Token, Herb::Token) -> void
137
- def initialize: (String, Location, String, Herb::Token, Herb::Token) -> void
138
-
139
- # : () -> String
140
- def inspect: () -> String
141
-
142
- # : () -> serialized_quotes_mismatch_error
143
- def to_hash: () -> serialized_quotes_mismatch_error
144
-
145
- # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
146
- def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
147
- end
148
-
149
134
  class VoidElementClosingTagError < Error
150
135
  include Colors
151
136
 
152
- attr_reader tag_name: Herb::Token
137
+ attr_reader tag_name: Herb::Token?
153
138
 
154
- attr_reader expected: String
139
+ attr_reader expected: String?
155
140
 
156
- attr_reader found: String
141
+ attr_reader found: String?
157
142
 
158
- # : (String, Location, String, Herb::Token, String, String) -> void
159
- def initialize: (String, Location, String, Herb::Token, String, String) -> void
143
+ # : (String, Location?, String, Herb::Token, String, String) -> void
144
+ def initialize: (String, Location?, String, Herb::Token, String, String) -> void
160
145
 
161
146
  # : () -> String
162
147
  def inspect: () -> String
@@ -171,10 +156,10 @@ module Herb
171
156
  class UnclosedElementError < Error
172
157
  include Colors
173
158
 
174
- attr_reader opening_tag: Herb::Token
159
+ attr_reader opening_tag: Herb::Token?
175
160
 
176
- # : (String, Location, String, Herb::Token) -> void
177
- def initialize: (String, Location, String, Herb::Token) -> void
161
+ # : (String, Location?, String, Herb::Token) -> void
162
+ def initialize: (String, Location?, String, Herb::Token) -> void
178
163
 
179
164
  # : () -> String
180
165
  def inspect: () -> String
@@ -189,14 +174,14 @@ module Herb
189
174
  class RubyParseError < Error
190
175
  include Colors
191
176
 
192
- attr_reader error_message: String
177
+ attr_reader error_message: String?
193
178
 
194
- attr_reader diagnostic_id: String
179
+ attr_reader diagnostic_id: String?
195
180
 
196
- attr_reader level: String
181
+ attr_reader level: String?
197
182
 
198
- # : (String, Location, String, String, String, String) -> void
199
- def initialize: (String, Location, String, String, String, String) -> void
183
+ # : (String, Location?, String, String, String, String) -> void
184
+ def initialize: (String, Location?, String, String, String, String) -> void
200
185
 
201
186
  # : () -> String
202
187
  def inspect: () -> String
@@ -211,10 +196,10 @@ module Herb
211
196
  class ERBControlFlowScopeError < Error
212
197
  include Colors
213
198
 
214
- attr_reader keyword: String
199
+ attr_reader keyword: String?
215
200
 
216
- # : (String, Location, String, String) -> void
217
- def initialize: (String, Location, String, String) -> void
201
+ # : (String, Location?, String, String) -> void
202
+ def initialize: (String, Location?, String, String) -> void
218
203
 
219
204
  # : () -> String
220
205
  def inspect: () -> String
@@ -229,16 +214,16 @@ module Herb
229
214
  class MissingERBEndTagError < Error
230
215
  include Colors
231
216
 
232
- attr_reader keyword: String
217
+ attr_reader keyword: String?
233
218
 
234
- # : (String, Location, String, String) -> void
235
- def initialize: (String, Location, String, String) -> void
219
+ # : (String, Location?, String, String) -> void
220
+ def initialize: (String, Location?, String, String) -> void
236
221
 
237
222
  # : () -> String
238
223
  def inspect: () -> String
239
224
 
240
- # : () -> serialized_missingerb_end_tag_error
241
- def to_hash: () -> serialized_missingerb_end_tag_error
225
+ # : () -> serialized_missing_erb_end_tag_error
226
+ def to_hash: () -> serialized_missing_erb_end_tag_error
242
227
 
243
228
  # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
244
229
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
@@ -263,5 +248,215 @@ module Herb
263
248
  # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
264
249
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
265
250
  end
251
+
252
+ class ConditionalElementMultipleTagsError < Error
253
+ include Colors
254
+
255
+ attr_reader line: Integer?
256
+
257
+ attr_reader column: Integer?
258
+
259
+ # : (String, Location?, String, Integer, Integer) -> void
260
+ def initialize: (String, Location?, String, Integer, Integer) -> void
261
+
262
+ # : () -> String
263
+ def inspect: () -> String
264
+
265
+ # : () -> serialized_conditional_element_multiple_tags_error
266
+ def to_hash: () -> serialized_conditional_element_multiple_tags_error
267
+
268
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
269
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
270
+ end
271
+
272
+ class ConditionalElementConditionMismatchError < Error
273
+ include Colors
274
+
275
+ attr_reader tag_name: String?
276
+
277
+ attr_reader open_condition: String?
278
+
279
+ attr_reader open_line: Integer?
280
+
281
+ attr_reader open_column: Integer?
282
+
283
+ attr_reader close_condition: String?
284
+
285
+ attr_reader close_line: Integer?
286
+
287
+ attr_reader close_column: Integer?
288
+
289
+ # : (String, Location?, String, String, String, Integer, Integer, String, Integer, Integer) -> void
290
+ def initialize: (String, Location?, String, String, String, Integer, Integer, String, Integer, Integer) -> void
291
+
292
+ # : () -> String
293
+ def inspect: () -> String
294
+
295
+ # : () -> serialized_conditional_element_condition_mismatch_error
296
+ def to_hash: () -> serialized_conditional_element_condition_mismatch_error
297
+
298
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
299
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
300
+ end
301
+
302
+ class InvalidCommentClosingTagError < Error
303
+ include Colors
304
+
305
+ attr_reader closing_tag: Herb::Token?
306
+
307
+ # : (String, Location?, String, Herb::Token) -> void
308
+ def initialize: (String, Location?, String, Herb::Token) -> void
309
+
310
+ # : () -> String
311
+ def inspect: () -> String
312
+
313
+ # : () -> serialized_invalid_comment_closing_tag_error
314
+ def to_hash: () -> serialized_invalid_comment_closing_tag_error
315
+
316
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
317
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
318
+ end
319
+
320
+ class OmittedClosingTagError < Error
321
+ include Colors
322
+
323
+ attr_reader opening_tag: Herb::Token?
324
+
325
+ attr_reader insertion_point: Herb::Position?
326
+
327
+ # : (String, Location?, String, Herb::Token, Herb::Position) -> void
328
+ def initialize: (String, Location?, String, Herb::Token, Herb::Position) -> void
329
+
330
+ # : () -> String
331
+ def inspect: () -> String
332
+
333
+ # : () -> serialized_omitted_closing_tag_error
334
+ def to_hash: () -> serialized_omitted_closing_tag_error
335
+
336
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
337
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
338
+ end
339
+
340
+ class UnclosedOpenTagError < Error
341
+ include Colors
342
+
343
+ attr_reader tag_name: Herb::Token?
344
+
345
+ # : (String, Location?, String, Herb::Token) -> void
346
+ def initialize: (String, Location?, String, Herb::Token) -> void
347
+
348
+ # : () -> String
349
+ def inspect: () -> String
350
+
351
+ # : () -> serialized_unclosed_open_tag_error
352
+ def to_hash: () -> serialized_unclosed_open_tag_error
353
+
354
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
355
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
356
+ end
357
+
358
+ class UnclosedCloseTagError < Error
359
+ include Colors
360
+
361
+ attr_reader tag_name: Herb::Token?
362
+
363
+ # : (String, Location?, String, Herb::Token) -> void
364
+ def initialize: (String, Location?, String, Herb::Token) -> void
365
+
366
+ # : () -> String
367
+ def inspect: () -> String
368
+
369
+ # : () -> serialized_unclosed_close_tag_error
370
+ def to_hash: () -> serialized_unclosed_close_tag_error
371
+
372
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
373
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
374
+ end
375
+
376
+ class UnclosedQuoteError < Error
377
+ include Colors
378
+
379
+ attr_reader opening_quote: Herb::Token?
380
+
381
+ # : (String, Location?, String, Herb::Token) -> void
382
+ def initialize: (String, Location?, String, Herb::Token) -> void
383
+
384
+ # : () -> String
385
+ def inspect: () -> String
386
+
387
+ # : () -> serialized_unclosed_quote_error
388
+ def to_hash: () -> serialized_unclosed_quote_error
389
+
390
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
391
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
392
+ end
393
+
394
+ class MissingAttributeValueError < Error
395
+ include Colors
396
+
397
+ attr_reader attribute_name: String?
398
+
399
+ # : (String, Location?, String, String) -> void
400
+ def initialize: (String, Location?, String, String) -> void
401
+
402
+ # : () -> String
403
+ def inspect: () -> String
404
+
405
+ # : () -> serialized_missing_attribute_value_error
406
+ def to_hash: () -> serialized_missing_attribute_value_error
407
+
408
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
409
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
410
+ end
411
+
412
+ class UnclosedERBTagError < Error
413
+ include Colors
414
+
415
+ attr_reader opening_tag: Herb::Token?
416
+
417
+ # : (String, Location?, String, Herb::Token) -> void
418
+ def initialize: (String, Location?, String, Herb::Token) -> void
419
+
420
+ # : () -> String
421
+ def inspect: () -> String
422
+
423
+ # : () -> serialized_unclosed_erb_tag_error
424
+ def to_hash: () -> serialized_unclosed_erb_tag_error
425
+
426
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
427
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
428
+ end
429
+
430
+ class StrayERBClosingTagError < Error
431
+ include Colors
432
+
433
+ # : () -> String
434
+ def inspect: () -> String
435
+
436
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
437
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
438
+ end
439
+
440
+ class NestedERBTagError < Error
441
+ include Colors
442
+
443
+ attr_reader opening_tag: Herb::Token?
444
+
445
+ attr_reader nested_tag_line: Integer?
446
+
447
+ attr_reader nested_tag_column: Integer?
448
+
449
+ # : (String, Location?, String, Herb::Token, Integer, Integer) -> void
450
+ def initialize: (String, Location?, String, Herb::Token, Integer, Integer) -> void
451
+
452
+ # : () -> String
453
+ def inspect: () -> String
454
+
455
+ # : () -> serialized_nested_erb_tag_error
456
+ def to_hash: () -> serialized_nested_erb_tag_error
457
+
458
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
459
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
460
+ end
266
461
  end
267
462
  end
@@ -1,6 +1,10 @@
1
1
  # Generated from lib/herb/location.rb with RBS::Inline
2
2
 
3
3
  module Herb
4
+ # : type serialized_location = {
5
+ # | start: serialized_position,
6
+ # | end: serialized_position
7
+ # | }
4
8
  class Location
5
9
  attr_reader start: Position
6
10
 
@@ -4,8 +4,10 @@ module Herb
4
4
  class ParseResult < Result
5
5
  attr_reader value: Herb::AST::DocumentNode
6
6
 
7
- # : (Herb::AST::DocumentNode, String, Array[Herb::Warnings::Warning], Array[Herb::Errors::Error]) -> void
8
- def initialize: (Herb::AST::DocumentNode, String, Array[Herb::Warnings::Warning], Array[Herb::Errors::Error]) -> void
7
+ attr_reader options: Herb::ParserOptions
8
+
9
+ # : (Herb::AST::DocumentNode, String, Array[Herb::Warnings::Warning], Array[Herb::Errors::Error], Herb::ParserOptions) -> void
10
+ def initialize: (Herb::AST::DocumentNode, String, Array[Herb::Warnings::Warning], Array[Herb::Errors::Error], Herb::ParserOptions) -> void
9
11
 
10
12
  # : () -> Array[Herb::Errors::Error]
11
13
  def errors: () -> Array[Herb::Errors::Error]