Skip to content

Commit 4663c19

Browse files
committed
Move defined? and English bool operators to *Operator syntax groups
1 parent 1507e68 commit 4663c19

File tree

2 files changed

+40
-18
lines changed

2 files changed

+40
-18
lines changed

spec/syntax/operators_spec.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,21 @@
88
vim.command 'unlet g:ruby_operators'
99
end
1010

11+
specify "defined? operator" do
12+
assert_correct_highlighting 'defined?', 'defined?', 'rubyDefinedOperator'
13+
end
14+
15+
specify "English boolean operators" do
16+
str = <<~'EOF'
17+
not true
18+
true and false
19+
true or false
20+
EOF
21+
['not', 'and', 'or'].each do |p|
22+
assert_correct_highlighting str, p, 'rubyEnglishBooleanOperator'
23+
end
24+
end
25+
1126
specify "modulo-assignment operators" do
1227
assert_correct_highlighting <<~'EOF', '%=', 'rubyAssignmentOperator'
1328
foo %= bar

syntax/ruby.vim

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ if exists("ruby_space_errors")
7878
endif
7979

8080
" Operators {{{1
81+
82+
syn match rubyEnglishBooleanOperator "\<\%(and\|or\|not\)\>"
83+
8184
if exists("ruby_operators") || exists("ruby_pseudo_operators")
8285
syn match rubyDotOperator "\.\|&\."
8386

@@ -337,7 +340,8 @@ syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,
337340
" Keywords {{{1
338341
" Note: the following keywords have already been defined:
339342
" begin case class def do end for if module unless until while
340-
syn match rubyControl "\<\%(and\|break\|in\|next\|not\|or\|redo\|retry\|return\)\>"
343+
344+
syn match rubyControl "\<\%(break\|in\|next\|redo\|retry\|return\)\>"
341345
syn match rubyKeyword "\<\%(super\|yield\)\>"
342346
syn match rubyBoolean "\<\%(true\|false\)\>[?!]\@!"
343347
syn match rubyPseudoVariable "\<\(self\|nil\)\>[?!]\@!"
@@ -452,7 +456,7 @@ syn match rubyBangPredicateMethod "\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[?
452456
if !exists("ruby_no_special_methods")
453457
syn match rubyControl "\<exit!" display
454458
endif
455-
syn match rubyOperator "\<defined?" display
459+
syn match rubyDefinedOperator "\<defined?" display
456460

457461
" More Symbols {{{1
458462
syn match rubySymbol "\%([{(,]\_s*\)\@<=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[?!=]\=::\@!"he=e-1
@@ -503,26 +507,29 @@ hi def link rubySymbol Constant
503507
hi def link rubyKeyword Keyword
504508

505509
hi def link rubyOperator Operator
510+
hi def link rubyDefinedOperator rubyOperator
511+
hi def link rubyEnglishBooleanOperator rubyOperator
506512
if exists("ruby_operators")
507-
hi def link rubyTernaryOperator Operator
508-
hi def link rubyArithmeticOperator Operator
509-
hi def link rubyComparisonOperator Operator
510-
hi def link rubyBitwiseOperator Operator
511-
hi def link rubyBooleanOperator Operator
512-
hi def link rubyRangeOperator Operator
513-
hi def link rubyAssignmentOperator Operator
514-
hi def link rubyEqualityOperator Operator
513+
hi def link rubyTernaryOperator rubyOperator
514+
hi def link rubyArithmeticOperator rubyOperator
515+
hi def link rubyComparisonOperator rubyOperator
516+
hi def link rubyBitwiseOperator rubyOperator
517+
hi def link rubyBooleanOperator rubyOperator
518+
hi def link rubyRangeOperator rubyOperator
519+
hi def link rubyAssignmentOperator rubyOperator
520+
hi def link rubyEqualityOperator rubyOperator
515521
endif
516522

517523
if exists("ruby_pseudo_operators")
518-
hi def link rubyDotOperator Special
519-
hi def link rubyScopeOperator Special
520-
hi def link rubySuperClassOperator Special
521-
hi def link rubyEigenClassOperator Special
522-
hi def link rubyLambdaOperator Special
523-
hi def link rubyDoubleSplatOperator Special
524-
hi def link rubySplatOperator Special
525-
hi def link rubyProcOperator Special
524+
hi def link rubyPseudoOperator Special
525+
hi def link rubyDotOperator rubyPseudoOperator
526+
hi def link rubyScopeOperator rubyPseudoOperator
527+
hi def link rubySuperClassOperator rubyPseudoOperator
528+
hi def link rubyEigenClassOperator rubyPseudoOperator
529+
hi def link rubyLambdaOperator rubyPseudoOperator
530+
hi def link rubyDoubleSplatOperator rubyPseudoOperator
531+
hi def link rubySplatOperator rubyPseudoOperator
532+
hi def link rubyProcOperator rubyPseudoOperator
526533
endif
527534

528535
hi def link rubyBeginEnd Statement

0 commit comments

Comments
 (0)