mirror of
				https://gitea.invidious.io/iv-org/shard-ameba.git
				synced 2024-08-15 00:53:29 +00:00 
			
		
		
		
	Add AsciiIdentifiers#ignore_symbols property
				
					
				
			This commit is contained in:
		
							parent
							
								
									be76b3682a
								
							
						
					
					
						commit
						018adb54be
					
				
					 2 changed files with 27 additions and 3 deletions
				
			
		|  | @ -126,5 +126,26 @@ module Ameba::Rule::Naming | |||
|         space = :invader # 👾 | ||||
|         CRYSTAL | ||||
|     end | ||||
| 
 | ||||
|     context "properties" do | ||||
|       context "#ignore_symbols" do | ||||
|         it "returns `false` by default" do | ||||
|           rule = AsciiIdentifiers.new | ||||
|           rule.ignore_symbols?.should be_false | ||||
|         end | ||||
| 
 | ||||
|         it "stops reporting symbol literals if set to `true`" do | ||||
|           rule = AsciiIdentifiers.new | ||||
|           rule.ignore_symbols = true | ||||
| 
 | ||||
|           expect_no_issues rule, <<-CRYSTAL | ||||
|             def forest_adventure(animal_type = :🐺); end | ||||
|             %i[🐺 🐿].index!(:🐺) | ||||
|             foo, bar = :신장, true | ||||
|             foo = :신장 | ||||
|             CRYSTAL | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -20,10 +20,12 @@ module Ameba::Rule::Naming | |||
|   # ``` | ||||
|   # Naming/AsciiIdentifiers: | ||||
|   #   Enabled: true | ||||
|   #   IgnoreSymbols: false | ||||
|   # ``` | ||||
|   class AsciiIdentifiers < Base | ||||
|     properties do | ||||
|       description "Disallows non-ascii characters in identifiers" | ||||
|       ignore_symbols false | ||||
|     end | ||||
| 
 | ||||
|     MSG = "Identifier contains non-ascii characters" | ||||
|  | @ -68,9 +70,10 @@ module Ameba::Rule::Naming | |||
|     end | ||||
| 
 | ||||
|     private def check_symbol_literal(source, node) | ||||
|       if node.is_a?(Crystal::SymbolLiteral) | ||||
|         check_issue(source, node, node.value) | ||||
|       end | ||||
|       return if ignore_symbols? | ||||
|       return unless node.is_a?(Crystal::SymbolLiteral) | ||||
| 
 | ||||
|       check_issue(source, node, node.value) | ||||
|     end | ||||
| 
 | ||||
|     private def check_issue(source, location, end_location, name) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue