Added MoonScript and GraphQL langs.

Minor fixes.
This commit is contained in:
Martín Lucas Golini
2024-02-20 02:01:04 -03:00
parent d276aa5bc7
commit ca85127605
9 changed files with 182 additions and 6 deletions

View File

@@ -861,6 +861,22 @@
../../src/eepp/system/virtualfilesystem.cpp
../../src/eepp/system/zip.cpp
../../src/eepp/ui/abstract/filesystemmodel.hpp
../../src/eepp/ui/doc/languages/angelscript.cpp
../../src/eepp/ui/doc/languages/angelscript.hpp
../../src/eepp/ui/doc/languages/batchscript.cpp
../../src/eepp/ui/doc/languages/batchscript.hpp
../../src/eepp/ui/doc/languages/blueprint.cpp
../../src/eepp/ui/doc/languages/blueprint.hpp
../../src/eepp/ui/doc/languages/crystal.hpp
../../src/eepp/ui/doc/languages/css.hpp
../../src/eepp/ui/doc/languages/d.hpp
../../src/eepp/ui/doc/languages/elixir.hpp
../../src/eepp/ui/doc/languages/elm.hpp
../../src/eepp/ui/doc/languages/fstab.hpp
../../src/eepp/ui/doc/languages/gdscript.cpp
../../src/eepp/ui/doc/languages/gdscript.hpp
../../src/eepp/ui/doc/languages/graphql.hpp
../../src/eepp/ui/doc/languages/hare.hpp
../../src/eepp/ui/doc/languages/hlsl.cpp
../../src/eepp/ui/doc/languages/htaccess.cpp
../../src/eepp/ui/doc/languages/objeck.cpp
@@ -897,14 +913,39 @@
../../src/eepp/ui/css/stylesheetvariable.cpp
../../src/eepp/ui/css/timingfunction.cpp
../../src/eepp/ui/css/transitiondefinition.cpp
../../src/eepp/ui/doc/languages/crystal.cpp
../../src/eepp/ui/doc/languages/css.cpp
../../src/eepp/ui/doc/languages/d.cpp
../../src/eepp/ui/doc/languages/elixir.cpp
../../src/eepp/ui/doc/languages/elm.cpp
../../src/eepp/ui/doc/languages/fstab.cpp
../../src/eepp/ui/doc/languages/glsl.cpp
../../src/eepp/ui/doc/languages/glsl.hpp
../../src/eepp/ui/doc/languages/graphql.cpp
../../src/eepp/ui/doc/languages/hare.cpp
../../src/eepp/ui/doc/languages/hlsl.cpp
../../src/eepp/ui/doc/languages/hlsl.hpp
../../src/eepp/ui/doc/languages/htaccess.cpp
../../src/eepp/ui/doc/languages/htaccess.hpp
../../src/eepp/ui/doc/languages/html.cpp
../../src/eepp/ui/doc/languages/html.hpp
../../src/eepp/ui/doc/languages/jai.cpp
../../src/eepp/ui/doc/languages/jai.hpp
../../src/eepp/ui/doc/languages/julia.cpp
../../src/eepp/ui/doc/languages/julia.hpp
../../src/eepp/ui/doc/languages/kotlin.cpp
../../src/eepp/ui/doc/languages/kotlin.hpp
../../src/eepp/ui/doc/languages/lobster.cpp
../../src/eepp/ui/doc/languages/lobster.hpp
../../src/eepp/ui/doc/languages/markdown.cpp
../../src/eepp/ui/doc/languages/markdown.hpp
../../src/eepp/ui/doc/languages/moonscript.cpp
../../src/eepp/ui/doc/languages/moonscript.hpp
../../src/eepp/ui/doc/languages/nelua.cpp
../../src/eepp/ui/doc/languages/nelua.hpp
../../src/eepp/ui/doc/languages/objeck.cpp
../../src/eepp/ui/doc/languages/objeck.hpp
../../src/eepp/ui/doc/languages/odin.cpp
../../src/eepp/ui/doc/languages/odin.hpp
../../src/eepp/ui/doc/languages/pascal.cpp
../../src/eepp/ui/doc/languages/pascal.hpp

View File

@@ -0,0 +1,55 @@
#include <eepp/ui/doc/languages/graphql.hpp>
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
namespace EE { namespace UI { namespace Doc { namespace Language {
void addGraphQL() {
SyntaxDefinitionManager::instance()->add(
{ "GraphQL",
{ "%.graphql$", "%.gql$" },
{
{ { "\"\"\"", "\"\"\"" }, "comment" },
{ { "#.*" }, "comment" },
{ { "\"", "\"", "\\" }, "string" },
{ { "-?%.?%d+" }, "number" },
{ { "%s*[@]%s*[%a_][%w_]*" }, "function" },
{ { "!" }, "operator" },
{ { "%s*=%s*" }, "operator" },
{ { "%s*%$[%a_][%w_]*:*" }, "literal" },
{ { "(query%s*)([%a_][%w_]*[(])" }, { "normal", "keyword", "function" } },
{ { "(mutation%s*)([%a_][%w_]*[(])" }, { "normal", "keyword", "function" } },
{ { "(:%s*%[*)([%a_,%s][%w_,%s]*)(%]*)([!]*)" },
{ "normal", "symbol", "literal", "symbol", "operator" } },
{ { "%s+" }, "normal" },
{ { "%w+%f[%s]" }, "normal" },
},
{
{ "false", "literal" },
{ "on", "keyword" },
{ "true", "literal" },
{ "scalar", "keyword" },
{ "implements", "keyword" },
{ "extend", "keyword2" },
{ "enum", "keyword" },
{ "schema", "keyword" },
{ "mutation", "keyword" },
{ "query", "keyword" },
{ "directive", "keyword" },
{ "union", "keyword" },
{ "input", "keyword" },
{ "interface", "keyword" },
{ "extends", "keyword" },
{ "fragment", "keyword" },
{ "type", "keyword" },
},
"#",
{}
} );
}
}}}} // namespace EE::UI::Doc::Language

View File

@@ -0,0 +1,10 @@
#ifndef EE_UI_DOC_Graphql
#define EE_UI_DOC_Graphql
namespace EE { namespace UI { namespace Doc { namespace Language {
extern void addGraphQL();
}}}} // namespace EE::UI::Doc::Language
#endif

View File

@@ -0,0 +1,54 @@
#include <eepp/ui/doc/languages/moonscript.hpp>
#include <eepp/ui/doc/syntaxdefinitionmanager.hpp>
namespace EE { namespace UI { namespace Doc { namespace Language {
void addMoonscript() {
SyntaxDefinitionManager::instance()->add(
{ "MoonScript",
{ "%.moon$" },
{
{ { "\"", "\"", "\\" }, "string" },
{ { "'", "'", "\\" }, "string" },
{ { "%[%[", "%]%]" }, "string" },
{ { "%-%-.-\n" }, "comment" },
{ { "-?0x%x+" }, "number" },
{ { "-?%d+[%d%.eE]*" }, "number" },
{ { "-?%.?%d+" }, "number" },
{ { "%.%.%.?" }, "keyword2" },
{ { "[<>~=]=" }, "keyword2" },
{ { "[%+%-=/%*%^%%#<>]" }, "keyword2" },
{ { "[%a_][%w_]*%s*%f[(\"{]" }, "function" },
{ { "[%a_][%w_]*" }, "symbol" },
{ { "\\", "[%a_][%w_]*" }, "function" },
{ { "%.", "[%a_][%w_]*" }, "function" },
{ { "@", "[%a_][%w_]*" }, "keyword2" },
{ { "!" }, "keyword2" },
{ { "[%p]" }, "keyword" },
{ { "%s+" }, "normal" },
{ { "%w+%f[%s]" }, "normal" },
},
{
{ "elseif", "keyword" }, { "in", "keyword" }, { "then", "keyword" },
{ "and", "keyword" }, { "continue", "keyword" }, { "unless", "keyword" },
{ "switch", "keyword" }, { "using", "keyword" }, { "return", "keyword" },
{ "import", "keyword" }, { "as", "keyword" }, { "class", "keyword" },
{ "super", "keyword2" }, { "extends", "keyword" }, { "with", "keyword" },
{ "false", "literal" }, { "for", "keyword" }, { "while", "keyword" },
{ "from", "keyword" }, { "self", "keyword2" }, { "true", "literal" },
{ "else", "keyword" }, { "nil", "literal" }, { "not", "keyword" },
{ "when", "keyword" }, { "break", "keyword" }, { "#", "keyword2" },
{ "or", "keyword" }, { "if", "keyword" }, { "export", "keyword" },
{ "->", "keyword" }, { "do", "keyword" },
},
"--",
{}
} );
}
}}}} // namespace EE::UI::Doc::Language

View File

@@ -0,0 +1,10 @@
#ifndef EE_UI_DOC_Moonscript
#define EE_UI_DOC_Moonscript
namespace EE { namespace UI { namespace Doc { namespace Language {
extern void addMoonscript();
}}}} // namespace EE::UI::Doc::Language
#endif

View File

@@ -16,6 +16,7 @@
#include <eepp/ui/doc/languages/fstab.hpp>
#include <eepp/ui/doc/languages/gdscript.hpp>
#include <eepp/ui/doc/languages/glsl.hpp>
#include <eepp/ui/doc/languages/graphql.hpp>
#include <eepp/ui/doc/languages/hare.hpp>
#include <eepp/ui/doc/languages/hlsl.hpp>
#include <eepp/ui/doc/languages/htaccess.hpp>
@@ -25,6 +26,7 @@
#include <eepp/ui/doc/languages/kotlin.hpp>
#include <eepp/ui/doc/languages/lobster.hpp>
#include <eepp/ui/doc/languages/markdown.hpp>
#include <eepp/ui/doc/languages/moonscript.hpp>
#include <eepp/ui/doc/languages/nelua.hpp>
#include <eepp/ui/doc/languages/objeck.hpp>
#include <eepp/ui/doc/languages/odin.hpp>
@@ -1680,7 +1682,7 @@ SyntaxDefinitionManager::SyntaxDefinitionManager() {
if ( ms_singleton == nullptr )
ms_singleton = this;
mDefinitions.reserve( 81 );
mDefinitions.reserve( 83 );
// Register some languages support.
addPlainText();
@@ -1705,6 +1707,7 @@ SyntaxDefinitionManager::SyntaxDefinitionManager() {
addGDScript();
addGLSL();
addGo();
addGraphQL();
addHaskell();
addHare();
addHaxe();
@@ -1726,6 +1729,7 @@ SyntaxDefinitionManager::SyntaxDefinitionManager() {
addMakefile();
addMarkdown();
addMeson();
addMoonscript();
addNelua();
addNim();
addObjeck();

View File

@@ -285,6 +285,8 @@ _tokenize( const SyntaxDefinition& syntax, const std::string& text, const Syntax
for ( size_t curMatch = 1; curMatch < numMatches; curMatch++ ) {
start = matches[curMatch].start;
end = matches[curMatch].end;
if ( start == end && matches[curMatch - 1].end == start )
continue;
if ( pattern.patterns.size() >= 3 && i > 0 &&
text[i - 1] == pattern.patterns[2][0] )
continue;

View File

@@ -1007,7 +1007,7 @@ void GitPlugin::discard( const std::vector<std::string>& files ) {
[this, files]() {
return mGit->restore( fixFilePaths( files ), mGit->repoPath( files[0] ) );
},
true, false );
true, true );
} );
msgBox->setCloseShortcut( { KEY_ESCAPE, KEYMOD_NONE } );
msgBox->setTitle( i18n( "git_confirm", "Confirm" ) );
@@ -1026,7 +1026,7 @@ void GitPlugin::discard( const std::string& file ) {
msgBox->on( Event::OnConfirm, [this, file]( auto ) {
runAsync(
[this, file]() { return mGit->restore( fixFilePath( file ), mGit->repoPath( file ) ); },
true, false );
true, true );
} );
msgBox->setCloseShortcut( { KEY_ESCAPE, KEYMOD_NONE } );
msgBox->setTitle( i18n( "git_confirm", "Confirm" ) );

View File

@@ -764,10 +764,10 @@ void UniversalLocator::updateSwitchFileTypeTable() {
->getDocumentRef()
->getSyntaxDefinition()
.getLanguageName() );
mLocateTable->getSelection().set( idx.isValid() ? idx
: mLocateTable->getModel()->index( 0 ) );
mLocateTable->setSelection( idx.isValid() ? idx : mLocateTable->getModel()->index( 0 ) );
} else {
mLocateTable->scrollToTop();
}
mLocateTable->scrollToTop();
mLocateTable->setColumnsVisible( { 0 } );
}