From 6fa7f5c63bc69bf44674cab9d01b9d49e8d3151b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Wed, 24 May 2023 01:02:16 -0300 Subject: [PATCH] TypeScript and TSX Minor improvements --- include/eepp/ui/doc/syntaxdefinition.hpp | 2 ++ src/eepp/ui/doc/syntaxdefinition.cpp | 5 +++++ src/eepp/ui/doc/syntaxdefinitionmanager.cpp | 20 ++++++++++++++------ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/include/eepp/ui/doc/syntaxdefinition.hpp b/include/eepp/ui/doc/syntaxdefinition.hpp index 6bafa93c7..c68fd6f82 100644 --- a/include/eepp/ui/doc/syntaxdefinition.hpp +++ b/include/eepp/ui/doc/syntaxdefinition.hpp @@ -55,6 +55,8 @@ class EE_API SyntaxDefinition { SyntaxDefinition& addPattern( const SyntaxPattern& pattern ); + SyntaxDefinition& setPatterns( const std::vector& patterns ); + SyntaxDefinition& addPatternToFront( const SyntaxPattern& pattern ); SyntaxDefinition& addSymbol( const std::string& symbolName, const std::string& typeName ); diff --git a/src/eepp/ui/doc/syntaxdefinition.cpp b/src/eepp/ui/doc/syntaxdefinition.cpp index afbaccc13..916b84da2 100644 --- a/src/eepp/ui/doc/syntaxdefinition.cpp +++ b/src/eepp/ui/doc/syntaxdefinition.cpp @@ -80,6 +80,11 @@ SyntaxDefinition& SyntaxDefinition::addPattern( const SyntaxPattern& pattern ) { return *this; } +SyntaxDefinition& SyntaxDefinition::setPatterns( const std::vector& patterns ) { + mPatterns = patterns; + return *this; +} + SyntaxDefinition& SyntaxDefinition::addPatternToFront( const SyntaxPattern& pattern ) { auto patterns = mPatterns; mPatterns.clear(); diff --git a/src/eepp/ui/doc/syntaxdefinitionmanager.cpp b/src/eepp/ui/doc/syntaxdefinitionmanager.cpp index 551a90c0b..5a6203d59 100644 --- a/src/eepp/ui/doc/syntaxdefinitionmanager.cpp +++ b/src/eepp/ui/doc/syntaxdefinitionmanager.cpp @@ -441,8 +441,8 @@ static void addJavaScript() { { { { "//.-\n" }, "comment" }, { { "/%*", "%*/" }, "comment" }, - { { "/[%+%-%*%^%!%=%&%|%?%:%;%,%(%[%{%<%>%\\]", "/[igmsuyd][igmsuyd]?[igmsuyd]?", - "\\" }, + { { "/[%+%-%*%^%!%=%&%|%?%:%;%,%(%[%{%<%>%\\].*%f[/]", + "/[igmsuyd][igmsuyd]?[igmsuyd]?", "\\" }, "string" }, { { "\"", "\"", "\\" }, "string" }, { { "'", "'", "\\" }, "string" }, @@ -510,8 +510,8 @@ static void addTypeScript() { { { { "//.-\n" }, "comment" }, { { "/%*", "%*/" }, "comment" }, - { { "/[%+%-%*%^%!%=%&%|%?%:%;%,%(%[%{%<%>%\\]", "/[igmsuyd][igmsuyd]?[igmsuyd]?", - "\\" }, + { { "/[%+%-%*%^%!%=%&%|%?%:%;%,%(%[%{%<%>%\\].*%f[/]", + "/[igmsuyd][igmsuyd]?[igmsuyd]?", "\\" }, "string" }, { { "\"", "\"", "\\" }, "string" }, { { "'", "'", "\\" }, "string" }, @@ -549,10 +549,18 @@ static void addTypeScript() { { "with", "keyword" }, { "yield", "keyword" }, { "unknown", "keyword2" } }, "//" } ); + const SyntaxDefinition& html = SyntaxDefinitionManager::instance()->getByLSPName( "xml" ); + SyntaxDefinition tsxml( html ); + tsxml.setLanguageName( "TSXML" ); + tsxml.setFileTypes( {} ); + tsxml.setVisible( false ); + tsxml.addPatternToFront( { { "%{", "%}", "\\" }, "normal", "JavaScript" } ); + SyntaxDefinitionManager::instance()->add( std::move( tsxml ) ); + SyntaxDefinition tsx( ts ); tsx.setLanguageName( "TSX" ); tsx.setFileTypes( { "%.tsx$" } ); - tsx.addPatternToFront( { { "return%s+%(", "%s*);" }, "keyword", "HTML" } ); + tsx.addPatternToFront( { { "return%s+%(", "%s*);" }, "keyword", "TSXML" } ); SyntaxDefinitionManager::instance()->add( std::move( tsx ) ); } @@ -4384,6 +4392,7 @@ SyntaxDefinitionManager::SyntaxDefinitionManager() { addSwift(); addTeal(); addToml(); + addXML(); addTypeScript(); addV(); addVisualBasic(); @@ -4391,7 +4400,6 @@ SyntaxDefinitionManager::SyntaxDefinitionManager() { addWren(); addX86Assembly(); addxit(); - addXML(); addYAML(); addZig(); }