mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 12:42:45 +00:00 
			
		
		
		
	LibSyntax+LibGUI+LibJS: Move JS syntax highlighter to LibJS
This is a little bit messy but the basic idea is: Syntax::Highlighter now has a Syntax::HighlighterClient to talk to the outside world. It mostly communicates in LibGUI primitives that are available in headers, so inlineable. GUI::TextEditor inherits from Syntax::HighlighterClient. This let us to move GUI::JSSyntaxHighlighter to JS::SyntaxHighlighter and remove LibGUI's dependency on LibJS.
This commit is contained in:
		
							parent
							
								
									22baa5e64f
								
							
						
					
					
						commit
						ddbf20ecf6
					
				
					 23 changed files with 139 additions and 80 deletions
				
			
		|  | @ -32,7 +32,7 @@ | |||
| 
 | ||||
| namespace GUI { | ||||
| 
 | ||||
| static Syntax::TextStyle style_for_token_type(Gfx::Palette palette, GMLToken::Type type) | ||||
| static Syntax::TextStyle style_for_token_type(const Gfx::Palette& palette, GMLToken::Type type) | ||||
| { | ||||
|     switch (type) { | ||||
|     case GMLToken::Type::LeftCurly: | ||||
|  | @ -61,8 +61,7 @@ bool GMLSyntaxHighlighter::is_identifier(void* token) const | |||
| 
 | ||||
| void GMLSyntaxHighlighter::rehighlight(Gfx::Palette palette) | ||||
| { | ||||
|     ASSERT(m_editor); | ||||
|     auto text = m_editor->text(); | ||||
|     auto text = m_client->get_text(); | ||||
|     GMLLexer lexer(text); | ||||
|     auto tokens = lexer.lex(); | ||||
| 
 | ||||
|  | @ -78,12 +77,12 @@ void GMLSyntaxHighlighter::rehighlight(Gfx::Palette palette) | |||
|         span.data = reinterpret_cast<void*>(token.m_type); | ||||
|         spans.append(span); | ||||
|     } | ||||
|     m_editor->document().set_spans(spans); | ||||
|     m_client->do_set_spans(move(spans)); | ||||
| 
 | ||||
|     m_has_brace_buddies = false; | ||||
|     highlight_matching_token_pair(); | ||||
| 
 | ||||
|     m_editor->update(); | ||||
|     m_client->do_update(); | ||||
| } | ||||
| 
 | ||||
| Vector<GMLSyntaxHighlighter::MatchingTokenPair> GMLSyntaxHighlighter::matching_token_pairs() const | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling