mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 21:11:30 +08:00 
			
		
		
		
	fix inQuotes + tests
This commit is contained in:
		
							parent
							
								
									35469f6f2d
								
							
						
					
					
						commit
						4e5ddaf7d1
					
				| @ -49,6 +49,22 @@ describe("Lexer expression", () => { | ||||
|             .toEqual(["#label", "*=*", "text"]); | ||||
|     }); | ||||
| 
 | ||||
|     it("simple label operator with in quotes and without", () => { | ||||
|         expect(lexer("#label*=*'text'").expressionTokens) | ||||
|             .toEqual([ | ||||
|                 {token: "#label", inQuotes: false}, | ||||
|                 {token: "*=*", inQuotes: false}, | ||||
|                 {token: "text", inQuotes: true} | ||||
|             ]); | ||||
| 
 | ||||
|         expect(lexer("#label*=*text").expressionTokens) | ||||
|             .toEqual([ | ||||
|                 {token: "#label", inQuotes: false}, | ||||
|                 {token: "*=*", inQuotes: false}, | ||||
|                 {token: "text", inQuotes: false} | ||||
|             ]); | ||||
|     }); | ||||
| 
 | ||||
|     it("complex expressions with and, or and parenthesis", () => { | ||||
|         expect(lexer(`# (#label=text OR #second=text) AND ~relation`).expressionTokens.map(t => t.token)) | ||||
|             .toEqual(["#", "(", "#label", "=", "text", "or", "#second", "=", "text", ")", "and", "~relation"]); | ||||
|  | ||||
| @ -28,7 +28,7 @@ function lexer(str) { | ||||
| 
 | ||||
|         const rec = { | ||||
|             token: currentWord, | ||||
|             inQuotes: quotes | ||||
|             inQuotes: !!quotes | ||||
|         }; | ||||
| 
 | ||||
|         if (fulltextEnded) { | ||||
| @ -71,9 +71,9 @@ function lexer(str) { | ||||
|                 } | ||||
|             } | ||||
|             else if (quotes === chr) { | ||||
|                 quotes = false; | ||||
| 
 | ||||
|                 finishWord(); | ||||
| 
 | ||||
|                 quotes = false; | ||||
|             } | ||||
|             else { | ||||
|                 // it's a quote but within other kind of quotes so it's valid as a literal character
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 zadam
						zadam