Class: RuboCop::MagicComment::VimComment

Inherits:
EditorComment
  • Object
show all
Defined in:
lib/rubocop/magic_comment.rb

Overview

Wrapper for Vim style magic comments.

Examples:

Vim style comment

comment = RuboCop::MagicComment.parse(
  '# vim: filetype=ruby, fileencoding=ascii-8bit'
)

comment.encoding # => 'ascii-8bit'

Constant Summary collapse

REGEXP =
/#\s*vim:\s*(?<token>.+)/.freeze
FORMAT =
'# vim: %s'
SEPARATOR =
', '
OPERATOR =
'='
KEYWORDS =
MagicComment::KEYWORDS.merge(encoding: 'fileencoding').freeze

Instance Method Summary collapse

Methods inherited from EditorComment

#without

Instance Method Details

#encodingObject

For some reason the fileencoding keyword only works if there is at least one other token included in the string. For example

# works
 # vim: foo=bar, fileencoding=ascii-8bit

# does nothing
 # vim: foo=bar, fileencoding=ascii-8bit


251
252
253
# File 'lib/rubocop/magic_comment.rb', line 251

def encoding
  super if tokens.size > 1
end

#extract_rbs_inline_valueObject

Vim comments cannot specify RBS::inline behavior.



259
# File 'lib/rubocop/magic_comment.rb', line 259

def extract_rbs_inline_value; end

#extract_typedObject

Vim comments cannot specify Sorbet typechecking behavior.



265
# File 'lib/rubocop/magic_comment.rb', line 265

def extract_typed; end

#frozen_string_literalObject

Vim comments cannot specify frozen string literal behavior.



256
# File 'lib/rubocop/magic_comment.rb', line 256

def frozen_string_literal; end

#shareable_constant_valueObject

Vim comments cannot specify shareable constant values behavior.



262
# File 'lib/rubocop/magic_comment.rb', line 262

def shareable_constant_value; end