Class: RuboCop::Cop::Style::RbsInline::DataClassCommentAlignment
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Style::RbsInline::DataClassCommentAlignment
- Extended by:
- AutoCorrector
- Includes:
- ClassCommentAlignment
- Defined in:
- lib/rubocop/cop/style/rbs_inline/data_class_comment_alignment.rb,
sig/rubocop/cop/style/rbs_inline/data_class_comment_alignment.rbs
Overview
Checks that #: inline type annotations in Data.define blocks are aligned.
Each #: annotation comment should start at the same column, determined by
the longest attribute name (plus trailing comma). Folded Data.define calls
(where attributes are not one per line) are excluded.
Constant Summary collapse
- MSG =
"Misaligned inline type annotation for Data attribute."
Instance Method Summary collapse
Methods included from ClassCommentAlignment
#check_annotation_alignment, #check_comment_alignment, #correct_alignment
Methods included from DataStructHelper
#annotation_column, #attr_argument?, #attr_arguments, #build_multiline_replacement, #find_regular_comment, #folded?, #inline_type_annotation?, #inline_type_comment, #longest_argname
Methods included from SourceCodeHelper
#annotation_range, #blank_line?, #char_at, #character_offset, #comment_at, #comment_range, #line_range, #location_to_range, #source_code_at
Methods included from ASTUtils
#end_line, #name_location, #source!, #value_to_sym
Instance Method Details
#on_send(node) ⇒ void
This method returns an undefined value.
35 36 37 38 39 |
# File 'lib/rubocop/cop/style/rbs_inline/data_class_comment_alignment.rb', line 35 def on_send(node) #: void return unless struct_like_class?(node) check_comment_alignment(node) end |
#struct_like_class?(node) ⇒ Boolean
44 45 46 47 48 |
# File 'lib/rubocop/cop/style/rbs_inline/data_class_comment_alignment.rb', line 44 def struct_like_class?(node) #: bool return false unless node.method_name == :define (r = node.receiver).is_a?(RuboCop::AST::ConstNode) && r.short_name == :Data end |