| 
									
										
										
										
											2020-03-14 00:07:44 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2020, the SerenityOS developers. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2021-04-22 01:24:48 -07:00
										 |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							| 
									
										
										
										
											2020-03-14 00:07:44 +02:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-07 15:15:10 +01:00
										 |  |  | #include <LibSyntax/Highlighter.h>
 | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-07 16:56:02 +01:00
										 |  |  | namespace JS { | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-07 16:56:02 +01:00
										 |  |  | class SyntaxHighlighter : public Syntax::Highlighter { | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2021-02-07 16:56:02 +01:00
										 |  |  |     SyntaxHighlighter() { } | 
					
						
							|  |  |  |     virtual ~SyntaxHighlighter() override; | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-07 12:03:09 +04:30
										 |  |  |     virtual bool is_identifier(u64) const override; | 
					
						
							|  |  |  |     virtual bool is_navigatable(u64) const override; | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-07 15:15:10 +01:00
										 |  |  |     virtual Syntax::Language language() const override { return Syntax::Language::JavaScript; } | 
					
						
							| 
									
										
										
										
											2021-02-11 23:52:39 +01:00
										 |  |  |     virtual void rehighlight(const Palette&) override; | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2021-06-07 12:03:09 +04:30
										 |  |  |     virtual Vector<MatchingTokenPair> matching_token_pairs_impl() const override; | 
					
						
							|  |  |  |     virtual bool token_types_equal(u64, u64) const override; | 
					
						
							| 
									
										
										
										
											2020-03-13 00:52:03 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |