mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	[BUG] Make chroma match case-insenstive
- In the case that [go-enry](https://github.com/go-enry/go-enry/) returned langauge doesn't match a lexer name (Either because its not available or because it doesn't match Chroma's name), a last effort attempt is made to use Chroma's matching. - go-enry already applies `strings.ToLower` onto the filename to avoid being case-sensitive, add the same code for Chroma's matching. The code being used doesn't rely on the filename being case senstive for correct matching. - Adds unit test. - Resolves #752
This commit is contained in:
		
					parent
					
						
							
								4cb01ba5da
							
						
					
				
			
			
				commit
				
					
						dcc442351d
					
				
			
		
					 2 changed files with 8 additions and 2 deletions
				
			
		|  | @ -96,7 +96,7 @@ func Code(fileName, language, code string) (output template.HTML, lexerName stri | |||
| 	} | ||||
| 
 | ||||
| 	if lexer == nil { | ||||
| 		lexer = lexers.Match(fileName) | ||||
| 		lexer = lexers.Match(strings.ToLower(fileName)) | ||||
| 		if lexer == nil { | ||||
| 			lexer = lexers.Fallback | ||||
| 		} | ||||
|  | @ -165,7 +165,7 @@ func File(fileName, language string, code []byte) ([]template.HTML, string, erro | |||
| 
 | ||||
| 		lexer = lexers.Get(guessLanguage) | ||||
| 		if lexer == nil { | ||||
| 			lexer = lexers.Match(fileName) | ||||
| 			lexer = lexers.Match(strings.ToLower(fileName)) | ||||
| 			if lexer == nil { | ||||
| 				lexer = lexers.Fallback | ||||
| 			} | ||||
|  |  | |||
|  | @ -109,6 +109,12 @@ c=2 | |||
| 			), | ||||
| 			lexerName: "Python", | ||||
| 		}, | ||||
| 		{ | ||||
| 			name:      "DOS.PAS", | ||||
| 			code:      "", | ||||
| 			want:      lines(""), | ||||
| 			lexerName: "ObjectPascal", | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	for _, tt := range tests { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue