diff --git a/bin/assets/plugins/lspclient.json b/bin/assets/plugins/lspclient.json index 2c578643c..5a96f9dca 100644 --- a/bin/assets/plugins/lspclient.json +++ b/bin/assets/plugins/lspclient.json @@ -382,6 +382,13 @@ "url": "https://github.com/bscan/PerlNavigator", "command": "perlnavigator", "file_patterns": ["%.pm$", "%.pl$"] + }, + { + "language": "ada", + "name": "ada_language_server", + "url": "https://github.com/AdaCore/ada_language_server", + "command": "ada_language_server", + "file_patterns": ["%.adb$", "%.ads$", "%.ada$"] } ] } diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/ada.cpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/ada.cpp new file mode 100644 index 000000000..c3d6bacc0 --- /dev/null +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/ada.cpp @@ -0,0 +1,122 @@ +#include +#include + +namespace EE { namespace UI { namespace Doc { namespace Language { + +void addAda() { + + auto sd = SyntaxDefinitionManager::instance()->add( + + { "Ada", + { "%.adb$", "%.ads$", "%.ada$" }, + { + { { "\"", "\"", "\\" }, "string" }, + { { "%-%-.-\n" }, "comment" }, + { { "[%:%;%=%<%>%&%+%-%*%/%.%(%)]" }, "operator" }, + { { "-?%d+[%d%.eE_]*" }, "number" }, + { { "[%a_][%w_]*%f[(]" }, "function" }, + { { "-?%d+[%d%.eE_]*" }, "number" }, + { { "[%a_][%w_]*" }, "normal" }, + { { "%s+" }, "normal" }, + { { "[%a_][%w_]*" }, "symbol" }, + + }, + { + { "abort", "keyword" }, + { "abs", "keyword" }, + { "abstract", "keyword" }, + { "accept", "keyword" }, + { "access", "keyword" }, + { "aliased", "keyword" }, + { "all", "keyword" }, + { "and", "keyword" }, + { "array", "keyword" }, + { "at", "keyword" }, + { "begin", "keyword" }, + { "body", "keyword" }, + { "case", "keyword" }, + { "constant", "keyword" }, + { "declare", "keyword" }, + { "delay", "keyword" }, + { "delta", "keyword" }, + { "digits", "keyword" }, + { "do", "keyword" }, + { "else", "keyword" }, + { "elsif", "keyword" }, + { "end", "keyword" }, + { "entry", "keyword" }, + { "exception", "keyword" }, + { "exit", "keyword" }, + { "for", "keyword" }, + { "function", "keyword" }, + { "generic", "keyword" }, + { "goto", "keyword" }, + { "if", "keyword" }, + { "in", "keyword" }, + { "interface", "keyword" }, + { "is", "keyword" }, + { "limited", "keyword" }, + { "loop", "keyword" }, + { "mod", "keyword" }, + { "new", "keyword" }, + { "not", "keyword" }, + { "null", "keyword" }, + { "of", "keyword" }, + { "or", "keyword" }, + { "others", "keyword" }, + { "out", "keyword" }, + { "overriding", "keyword" }, + { "package", "keyword" }, + { "parallel", "keyword" }, + { "pragma", "keyword" }, + { "private", "keyword" }, + { "procedure", "keyword" }, + { "protected", "keyword" }, + { "raise", "keyword" }, + { "range", "keyword" }, + { "record", "keyword" }, + { "rem", "keyword" }, + { "renames", "keyword" }, + { "requeue", "keyword" }, + { "return", "keyword" }, + { "reverse", "keyword" }, + { "select", "keyword" }, + { "separate", "keyword" }, + { "some", "keyword" }, + { "subtype", "keyword" }, + { "synchronized", "keyword" }, + { "tagged", "keyword" }, + { "task", "keyword" }, + { "terminate", "keyword" }, + { "then", "keyword" }, + { "type", "keyword" }, + { "until", "keyword" }, + { "use", "keyword" }, + { "when", "keyword" }, + { "while", "keyword" }, + { "with", "keyword" }, + { "xor", "keyword" }, + { "true", "keyword" }, + { "false", "keyword" }, + { "boolean", "keyword2" }, + { "character", "keyword2" }, + { "count", "keyword2" }, + { "duration", "keyword2" }, + { "float", "keyword2" }, + { "integer", "keyword2" }, + { "long_float", "keyword2" }, + { "long_integer", "keyword2" }, + { "priority", "keyword2" }, + { "short_float", "keyword2" }, + { "short_integer", "keyword2" }, + { "string", "keyword2" }, + }, + "--", + {} + + } ); + + sd.setCaseInsensitive( true ); +} + +}}}} // namespace EE::UI::Doc::Language diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/ada.hpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/ada.hpp new file mode 100644 index 000000000..1c05c4eff --- /dev/null +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languages/ada.hpp @@ -0,0 +1,10 @@ +#ifndef EE_UI_DOC_ADA +#define EE_UI_DOC_ADA + +namespace EE { namespace UI { namespace Doc { namespace Language { + +extern void addAda(); + +}}}} + +#endif diff --git a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp index cffbb51ac..78c331bd2 100644 --- a/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp +++ b/src/modules/languages-syntax-highlighting/src/eepp/ui/doc/languagessyntaxhighlighting.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -89,6 +90,7 @@ namespace EE { namespace UI { namespace Doc { namespace Language { void LanguagesSyntaxHighlighting::load() { + addAda(); addAdept(); addAngelScript(); addAwkScript(); diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp index 6d32957a1..1ba0f0754 100644 --- a/src/tools/ecode/ecode.cpp +++ b/src/tools/ecode/ecode.cpp @@ -3485,7 +3485,7 @@ void App::init( const LogLevel& logLevel, std::string file, const Float& pidelDe mThreadPool->run( [this] { // Load language definitions Clock defClock; - SyntaxDefinitionManager::createSingleton( 104 ); + SyntaxDefinitionManager::createSingleton( 105 ); Language::LanguagesSyntaxHighlighting::load(); SyntaxDefinitionManager::instance()->setLanguageExtensionsPriority( mConfig.languagesExtensions.priorities );