diff --git a/src/libs/3rdparty/syntax-highlighting/.git-blame-ignore-revs b/src/libs/3rdparty/syntax-highlighting/.git-blame-ignore-revs index 8b2ba6d3d5f..eba140cf12f 100644 --- a/src/libs/3rdparty/syntax-highlighting/.git-blame-ignore-revs +++ b/src/libs/3rdparty/syntax-highlighting/.git-blame-ignore-revs @@ -1,4 +1,5 @@ # clang-format 56ed6f3f5f505eb0dbffc630729d67c3fb510546 +ba947348217c468a0cea117289f3a3fc43bb66e6 #clang-tidy 0960472cc3f57831a97697a4ae0cd139e2cc5551 diff --git a/src/libs/3rdparty/syntax-highlighting/.gitlab-ci.yml b/src/libs/3rdparty/syntax-highlighting/.gitlab-ci.yml index 8950fb6d61c..a5df0fb27a2 100644 --- a/src/libs/3rdparty/syntax-highlighting/.gitlab-ci.yml +++ b/src/libs/3rdparty/syntax-highlighting/.gitlab-ci.yml @@ -3,3 +3,8 @@ include: - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/windows.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android-qt6.yml diff --git a/src/libs/3rdparty/syntax-highlighting/.kde-ci.yml b/src/libs/3rdparty/syntax-highlighting/.kde-ci.yml index cf1d3363f9d..51e4f4e72f1 100644 --- a/src/libs/3rdparty/syntax-highlighting/.kde-ci.yml +++ b/src/libs/3rdparty/syntax-highlighting/.kde-ci.yml @@ -5,3 +5,8 @@ Dependencies: Options: test-before-installing: True + require-passing-tests-on: [ 'Linux', 'FreeBSD', 'Windows' ] + + # exclude stuff from cppcheck that takes too long + cppcheck-ignore-files: + - 'src/lib/abstracthighlighter.cpp' diff --git a/src/libs/3rdparty/syntax-highlighting/KF5SyntaxHighlightingConfig.cmake.in b/src/libs/3rdparty/syntax-highlighting/KF5SyntaxHighlightingConfig.cmake.in index aa822b88dc9..b576ae1b48c 100644 --- a/src/libs/3rdparty/syntax-highlighting/KF5SyntaxHighlightingConfig.cmake.in +++ b/src/libs/3rdparty/syntax-highlighting/KF5SyntaxHighlightingConfig.cmake.in @@ -1,8 +1,8 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt5Core @REQUIRED_QT_VERSION@) -find_dependency(Qt5Gui @REQUIRED_QT_VERSION@) +find_dependency(Qt@QT_MAJOR_VERSION@Core @REQUIRED_QT_VERSION@) +find_dependency(Qt@QT_MAJOR_VERSION@Gui @REQUIRED_QT_VERSION@) include("${CMAKE_CURRENT_LIST_DIR}/KF5SyntaxHighlightingTargets.cmake") @PACKAGE_INCLUDE_QCHTARGETS@ diff --git a/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h b/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h index 4336b19ce5d..9d25202a4bb 100644 --- a/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h +++ b/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h @@ -3,10 +3,10 @@ #ifndef SyntaxHighlighting_VERSION_H #define SyntaxHighlighting_VERSION_H -#define SyntaxHighlighting_VERSION_STRING "5.90.0" +#define SyntaxHighlighting_VERSION_STRING "5.95.0" #define SyntaxHighlighting_VERSION_MAJOR 5 -#define SyntaxHighlighting_VERSION_MINOR 90 +#define SyntaxHighlighting_VERSION_MINOR 95 #define SyntaxHighlighting_VERSION_PATCH 0 -#define SyntaxHighlighting_VERSION ((5<<16)|(90<<8)|(0)) +#define SyntaxHighlighting_VERSION ((5<<16)|(95<<8)|(0)) #endif diff --git a/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_export.h b/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_export.h index 25fb987a978..6591b59e810 100644 --- a/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_export.h +++ b/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_export.h @@ -88,7 +88,7 @@ #define KSYNTAXHIGHLIGHTING_BUILD_DEPRECATED_SINCE(major, minor) 1 #ifdef KSYNTAXHIGHLIGHTING_NO_DEPRECATED -# define KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT 0x55a00 +# define KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT 0x55f00 #endif #ifdef KSYNTAXHIGHLIGHTING_NO_DEPRECATED_WARNINGS # define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE 0 @@ -98,7 +98,7 @@ # ifdef KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT # define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT # else -# define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE 0x55a00 +# define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE 0x55f00 # endif #endif @@ -178,7 +178,7 @@ #define KSYNTAXHIGHLIGHTING_BUILD_DEPRECATED_SINCE(major, minor) 1 #ifdef KSYNTAXHIGHLIGHTING_NO_DEPRECATED -# define KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT 0x55a00 +# define KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT 0x55f00 #endif #ifdef KSYNTAXHIGHLIGHTING_NO_DEPRECATED_WARNINGS # define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE 0 @@ -188,7 +188,7 @@ # ifdef KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT # define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE KSYNTAXHIGHLIGHTING_DISABLE_DEPRECATED_BEFORE_AND_AT # else -# define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE 0x55a00 +# define KSYNTAXHIGHLIGHTING_DEPRECATED_WARNINGS_SINCE 0x55f00 # endif #endif diff --git a/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_logging.cpp b/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_logging.cpp index 8b3d9e6f49d..af482ef3db2 100644 --- a/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_logging.cpp +++ b/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib/ksyntaxhighlighting_logging.cpp @@ -3,9 +3,5 @@ #include "ksyntaxhighlighting_logging.h" namespace KSyntaxHighlighting { -#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) Q_LOGGING_CATEGORY(Log, "kf.syntaxhighlighting", QtInfoMsg) -#else -Q_LOGGING_CATEGORY(Log, "kf.syntaxhighlighting") -#endif } diff --git a/src/libs/3rdparty/syntax-highlighting/data/generators/.gitignore b/src/libs/3rdparty/syntax-highlighting/data/generators/.gitignore new file mode 100644 index 00000000000..8f4dc5cfcf4 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/data/generators/.gitignore @@ -0,0 +1 @@ +Pipfile.lock diff --git a/src/libs/3rdparty/syntax-highlighting/data/generators/Pipfile b/src/libs/3rdparty/syntax-highlighting/data/generators/Pipfile new file mode 100644 index 00000000000..8e9c570084c --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/data/generators/Pipfile @@ -0,0 +1,11 @@ +# kate: hl toml; + +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +click = "~= 8.0" +jinja2 = "~= 3.0" +PyYAML = "*" diff --git a/src/libs/3rdparty/syntax-highlighting/data/generators/cmake.yaml b/src/libs/3rdparty/syntax-highlighting/data/generators/cmake.yaml index f5437900627..e02b950765b 100644 --- a/src/libs/3rdparty/syntax-highlighting/data/generators/cmake.yaml +++ b/src/libs/3rdparty/syntax-highlighting/data/generators/cmake.yaml @@ -1,4 +1,4 @@ -version: 37 +version: 38 global-properties: - ALLOW_DUPLICATE_CUSTOM_TARGETS @@ -168,6 +168,7 @@ target-properties: - DEPLOYMENT_REMOTE_DIRECTORY - DEPRECATION # Since 3.17 - DISABLE_PRECOMPILE_HEADERS # Since 3.16 + - DOTNET_SDK # Since 3.23 - DOTNET_TARGET_FRAMEWORK # Since 3.17 - DOTNET_TARGET_FRAMEWORK_VERSION # Since 3.12 - EchoString @@ -188,6 +189,15 @@ target-properties: - GENERATOR_FILE_NAME - GNUtoMS - HAS_CXX + - HEADER_DIRS # Since 3.23 + - HEADER_DIRS_ # Since 3.23 + - HEADER_SET # Since 3.23 + - HEADER_SET_ # Since 3.23 + - HEADER_SETS # Since 3.23 + - HIP_ARCHITECTURES # Since 3.21 + - HIP_EXTENSIONS # Since 3.21 + - HIP_STANDARD # Since 3.21 + - HIP_STANDARD_REQUIRED # Since 3.21 - IMPLICIT_DEPENDS_INCLUDE_TRANSFORM - IMPORTED_COMMON_LANGUAGE_RUNTIME # Since 3.12 - IMPORTED_CONFIGURATIONS @@ -208,6 +218,7 @@ target-properties: - IMPORTED_LOCATION - IMPORTED_NO_SONAME_ - IMPORTED_NO_SONAME + - IMPORTED_NO_SYSTEM # Since 3.23 - IMPORTED_OBJECTS_ - IMPORTED_OBJECTS - IMPORTED @@ -224,6 +235,7 @@ target-properties: - INTERFACE_COMPILE_DEFINITIONS - INTERFACE_COMPILE_FEATURES - INTERFACE_COMPILE_OPTIONS + - INTERFACE_HEADER_SETS # Since 3.23 - INTERFACE_INCLUDE_DIRECTORIES - INTERFACE_LINK_DEPENDS # Since 3.13 - INTERFACE_LINK_DIRECTORIES # Since 3.13 @@ -264,6 +276,7 @@ target-properties: - LINK_INTERFACE_MULTIPLICITY_ - LINK_INTERFACE_MULTIPLICITY - LINK_LIBRARIES + - LINK_LIBRARIES_ONLY_TARGETS # Since 3.23 - LINK_OPTIONS # Since 3.13 - LINK_SEARCH_END_STATIC - LINK_SEARCH_START_STATIC @@ -390,6 +403,7 @@ target-properties: - XCODE_SCHEME_ARGUMENTS # Since 3.13 - XCODE_SCHEME_DEBUG_AS_ROOT # Since 3.15 - XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING # Since 3.16 + - XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE # Since 3.23 - XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER # Since 3.13 - XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE # Since 3.13 - XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS # Since 3.13 @@ -622,6 +636,7 @@ variables: - CMAKE_CURRENT_SOURCE_DIR - CMAKE_DIRECTORY_LABELS # Since 3.10 - CMAKE_DL_LIBS + - CMAKE_DOTNET_SDK # Since 3.23 - CMAKE_DOTNET_TARGET_FRAMEWORK # Since 3.17 - CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION # Since 3.12 - CMAKE_EDIT_COMMAND @@ -690,6 +705,7 @@ variables: - CMAKE_VS_DEVENV_COMMAND - CMAKE_VS_MSBUILD_COMMAND - CMAKE_VS_NsightTegra_VERSION + - CMAKE_VS_NUGET_PACKAGE_RESTORE # Since 3.23 - CMAKE_VS_PLATFORM_NAME - CMAKE_VS_PLATFORM_TOOLSET - CMAKE_VS_PLATFORM_TOOLSET_CUDA @@ -771,6 +787,7 @@ variables: - CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY # Since 3.16 - CMAKE_FRAMEWORK_PATH - CMAKE_IGNORE_PATH + - CMAKE_IGNORE_PREFIX_PATH # Since 3.23 - CMAKE_INCLUDE_DIRECTORIES_BEFORE - CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE - CMAKE_INCLUDE_PATH @@ -781,6 +798,7 @@ variables: - CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT - CMAKE_LIBRARY_PATH - CMAKE_LINK_DIRECTORIES_BEFORE # Since 3.13 + - CMAKE_LINK_LIBRARIES_ONLY_TARGETS # Since 3.23 - CMAKE_MAXIMUM_RECURSION_DEPTH # Since 3.14 - CMAKE_MFC_FLAG - CMAKE_MODULE_PATH @@ -803,6 +821,7 @@ variables: - CMAKE_SYSTEM_APPBUNDLE_PATH - CMAKE_SYSTEM_FRAMEWORK_PATH - CMAKE_SYSTEM_IGNORE_PATH + - CMAKE_SYSTEM_IGNORE_PREFIX_PATH # Since 3.23 - CMAKE_SYSTEM_INCLUDE_PATH - CMAKE_SYSTEM_LIBRARY_PATH - CMAKE_SYSTEM_PREFIX_PATH @@ -817,6 +836,7 @@ variables: - CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN # Since 3.13 - CMAKE_XCODE_SCHEME_WORKING_DIRECTORY # Since 3.17 - CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING # Since 3.16 + - CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE # Since 3.23 - CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER # Since 3.13 - CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE # Since 3.13 - CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS # Since 3.13 @@ -1186,6 +1206,7 @@ variables: - CTEST_RUN_CURRENT_SCRIPT # Since 3.11 - CTEST_SCP_COMMAND - CTEST_SITE + - CTEST_SUBMIT_INACTIVITY_TIMEOUT # Since 3.23 - CTEST_SUBMIT_URL # Since 3.14 - CTEST_SOURCE_DIRECTORY - CTEST_SVN_COMMAND @@ -1313,6 +1334,15 @@ variables: - CMAKE_C_LINK_NO_PIE_SUPPORTED - CMAKE_CXX_LINK_NO_PIE_SUPPORTED - CMAKE_Fortran_LINK_NO_PIE_SUPPORTED + # Since 3.23 + - CMAKE_OBJC_LINK_PIE_SUPPORTED + - CMAKE_OBJC_LINK_NO_PIE_SUPPORTED + - CMAKE_OBJCXX_LINK_PIE_SUPPORTED + - CMAKE_OBJCXX_LINK_NO_PIE_SUPPORTED + - CMAKE_CUDA_LINK_PIE_SUPPORTED + - CMAKE_CUDA_LINK_NO_PIE_SUPPORTED + - CMAKE_HIP_LINK_PIE_SUPPORTED + - CMAKE_HIP_LINK_NO_PIE_SUPPORTED # - CheckPrototypeDefinition # - CheckStructHasMember # - CheckSymbolExists @@ -1475,11 +1505,19 @@ variables: - CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE - CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS - CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH + - CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE # Since 3.23 - CPACK_IFW_PACKAGE_CONTROL_SCRIPT - CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR # Since 3.11 - CPACK_IFW_PACKAGE_RESOURCES - CPACK_IFW_REPOSITORIES_ALL - CPACK_IFW_DOWNLOAD_ALL + - CPACK_IFW_PACKAGE_PRODUCT_IMAGES # Since 3.23 + - CPACK_IFW_PACKAGE_RUN_PROGRAM # Since 3.23 + - CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS # Since 3.23 + - CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION # Since 3.23 + - CPACK_IFW_PACKAGE_SIGNING_IDENTITY # Since 3.23 + - CPACK_IFW_ARCHIVE_FORMAT # Since 3.23 + - CPACK_IFW_ARCHIVE_COMPRESSION # Since 3.23 - CPACK_IFW_RESOLVE_DUPLICATE_NAMES - CPACK_IFW_PACKAGES_DIRECTORIES - CPACK_IFW_FRAMEWORK_VERSION @@ -1567,6 +1605,7 @@ variables: # - CPackPackageMaker is deprecated and gonna be removed in next versions of CPack # - CPackProductBuild - CPACK_COMMAND_PRODUCTBUILD + - CPACK_PRODUCTBUILD_IDENTIFIER # Since 3.23 - CPACK_PRODUCTBUILD_IDENTITY_NAME - CPACK_PRODUCTBUILD_KEYCHAIN_PATH - CPACK_COMMAND_PKGBUILD @@ -1575,6 +1614,10 @@ variables: - CPACK_PREFLIGHT__SCRIPT # Since 3.1? - CPACK_POSTFLIGHT__SCRIPT # Since 3.1? - CPACK_PRODUCTBUILD_RESOURCES_DIR + - CPACK_PRODUCTBUILD_DOMAINS # Since 3.23 + - CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE # Since 3.23 + - CPACK_PRODUCTBUILD_DOMAINS_USER # Since 3.23 + - CPACK_PRODUCTBUILD_DOMAINS_ROOT # Since 3.23 - CPACK_PRODUCTBUILD_BACKGROUND # Since 3.17 - CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT # Since 3.17 - CPACK_PRODUCTBUILD_BACKGROUND_SCALING # Since 3.17 @@ -1750,6 +1793,7 @@ variables: - CPACK_WIX_ROOT_FOLDER_ID - CPACK_WIX_ROOT - CPACK_WIX_CUSTOM_XMLNS # Since 3.19 + - CPACK_WIX_SKIP_WIX_UI_EXTENSION # Since 3.23 # - CTest # - Dart - BUILD_TESTING @@ -2535,6 +2579,8 @@ environment-variables: - CMAKE_FRAMEWORK_PATH - CMAKE_APPBUNDLE_PATH - PATH + # Environment Variables recognized by some standard modules + - QTIFWDIR scripting-commands: - @@ -3389,7 +3435,20 @@ project-commands: named-args: [EXTRA_INCLUDE, FUNCTION] - name: define_property - named-args: [GLOBAL, DIRECTORY, DIRECTORY, SOURCE, TEST, VARIABLE, CACHED_VARIABLE, PROPERTY, INHERITED, BRIEF_DOCS, FULL_DOCS] + named-args: [ + GLOBAL + , DIRECTORY + , DIRECTORY + , SOURCE + , TEST + , VARIABLE + , CACHED_VARIABLE + , PROPERTY + , INHERITED + , BRIEF_DOCS + , FULL_DOCS + , INITIALIZE_FROM_VARIABLE # Since 3.23 + ] property-args: *get-property - name: enable_language @@ -3468,6 +3527,7 @@ project-commands: , PRIVATE_HEADER , PUBLIC_HEADER , RESOURCE + , FILE_SET # Since 3.23 , INCLUDES , NAMELINK_ONLY , NAMELINK_SKIP @@ -3707,7 +3767,16 @@ project-commands: first-arg-is-target?: true - name: target_sources - named-args: *target_compile_definitions + named-args: [ + INTERFACE + , PUBLIC + , PRIVATE + # Since 3.23 + , FILE_SET + , TYPE + , BASE_DIRS + , FILES + ] first-arg-is-target?: true - name: try_compile @@ -4230,7 +4299,11 @@ standard-module-commands: - name: check_pie_supported named-args: [OUTPUT_VARIABLE, LANGUAGES] - special-args: *ccxxf + special-args: [ + C, CXX, Fortran, + # Since 3.23 + OBJC, OBJCXX, CUDA, HIP + ] # CheckPrototypeDefinition - name: check_prototype_definition # CheckSourceCompiles @@ -4536,6 +4609,7 @@ standard-module-commands: - LOG_OUTPUT_ON_FAILURE - USES_TERMINAL_DOWNLOAD - USES_TERMINAL_UPDATE + - USES_TERMINAL_PATCH # Since 3.23 - USES_TERMINAL_CONFIGURE - USES_TERMINAL_BUILD - USES_TERMINAL_INSTALL diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml index 72e200cce2d..935041cd586 100644 --- a/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml +++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml @@ -39,7 +39,7 @@ ]> - + @@ -785,16 +787,30 @@ - - - + + + + + + + - + + + + + + + + + + + @@ -810,19 +826,6 @@ - - - - - - - - - - - - - @@ -1402,6 +1405,7 @@ + @@ -1415,10 +1419,13 @@ - + + + + @@ -1465,7 +1472,7 @@ - + @@ -1474,6 +1481,7 @@ + @@ -1489,7 +1497,7 @@ - + diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml index e94885b856f..e03d054c07a 100644 --- a/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml +++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml @@ -25,7 +25,7 @@ FULL_DOCS GLOBAL INHERITED + INITIALIZE_FROM_VARIABLE PROPERTY SOURCE TEST @@ -1034,6 +1035,7 @@ FILES FILES_MATCHING FILE_PERMISSIONS + FILE_SET FRAMEWORK IMPORTED_RUNTIME_ARTIFACTS INCLUDES @@ -1263,9 +1265,13 @@ REUSE_FROM + BASE_DIRS + FILES + FILE_SET INTERFACE PRIVATE PUBLIC + TYPE CMAKE_FLAGS @@ -1470,8 +1476,12 @@ C + CUDA CXX Fortran + HIP + OBJC + OBJCXX FAIL_REGEX @@ -1729,6 +1739,7 @@ USES_TERMINAL_CONFIGURE USES_TERMINAL_DOWNLOAD USES_TERMINAL_INSTALL + USES_TERMINAL_PATCH USES_TERMINAL_TEST USES_TERMINAL_UPDATE @@ -2256,6 +2267,8 @@ CMAKE_CUDA_COMPILE_FEATURES CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_HOST_COMPILER + CMAKE_CUDA_LINK_NO_PIE_SUPPORTED + CMAKE_CUDA_LINK_PIE_SUPPORTED CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS CMAKE_CUDA_RUNTIME_LIBRARY CMAKE_CUDA_SEPARABLE_COMPILATION @@ -2291,6 +2304,7 @@ CMAKE_DIRECTORY_LABELS CMAKE_DISABLE_PRECOMPILE_HEADERS CMAKE_DL_LIBS + CMAKE_DOTNET_SDK CMAKE_DOTNET_TARGET_FRAMEWORK CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES @@ -2370,6 +2384,8 @@ CMAKE_HAS_ANSI_STRING_STREAM CMAKE_HIP_ARCHITECTURES CMAKE_HIP_EXTENSIONS + CMAKE_HIP_LINK_NO_PIE_SUPPORTED + CMAKE_HIP_LINK_PIE_SUPPORTED CMAKE_HIP_STANDARD CMAKE_HIP_STANDARD_REQUIRED CMAKE_HOST_APPLE @@ -2382,6 +2398,7 @@ CMAKE_HOST_WIN32 CMAKE_HP_PTHREADS_INIT CMAKE_IGNORE_PATH + CMAKE_IGNORE_PREFIX_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR @@ -2461,6 +2478,7 @@ CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_DIRECTORIES_BEFORE CMAKE_LINK_INTERFACE_LIBRARIES + CMAKE_LINK_LIBRARIES_ONLY_TARGETS CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX @@ -2496,9 +2514,13 @@ CMAKE_NO_STD_NAMESPACE CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJCXX_EXTENSIONS + CMAKE_OBJCXX_LINK_NO_PIE_SUPPORTED + CMAKE_OBJCXX_LINK_PIE_SUPPORTED CMAKE_OBJCXX_STANDARD CMAKE_OBJCXX_STANDARD_REQUIRED CMAKE_OBJC_EXTENSIONS + CMAKE_OBJC_LINK_NO_PIE_SUPPORTED + CMAKE_OBJC_LINK_PIE_SUPPORTED CMAKE_OBJC_STANDARD CMAKE_OBJC_STANDARD_REQUIRED CMAKE_OBJECT_PATH_MAX @@ -2564,6 +2586,7 @@ CMAKE_SYSTEM_APPBUNDLE_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_PATH + CMAKE_SYSTEM_IGNORE_PREFIX_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME @@ -2596,6 +2619,7 @@ CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_JUST_MY_CODE_DEBUGGING CMAKE_VS_MSBUILD_COMMAND + CMAKE_VS_NUGET_PACKAGE_RESTORE CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET @@ -2625,6 +2649,7 @@ CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE CMAKE_XCODE_SCHEME_ENVIRONMENT CMAKE_XCODE_SCHEME_GUARD_MALLOC CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP @@ -2714,6 +2739,8 @@ CPACK_EXTERNAL_REQUESTED_VERSIONS CPACK_GENERATOR CPACK_IFW_ADMIN_TARGET_DIRECTORY + CPACK_IFW_ARCHIVE_COMPRESSION + CPACK_IFW_ARCHIVE_FORMAT CPACK_IFW_BINARYCREATOR_EXECUTABLE CPACK_IFW_DEVTOOL_EXECUTABLE CPACK_IFW_DOWNLOAD_ALL @@ -2725,15 +2752,21 @@ CPACK_IFW_PACKAGE_BACKGROUND CPACK_IFW_PACKAGE_BANNER CPACK_IFW_PACKAGE_CONTROL_SCRIPT + CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE CPACK_IFW_PACKAGE_GROUP CPACK_IFW_PACKAGE_ICON CPACK_IFW_PACKAGE_LOGO CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME CPACK_IFW_PACKAGE_NAME + CPACK_IFW_PACKAGE_PRODUCT_IMAGES CPACK_IFW_PACKAGE_PUBLISHER CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR CPACK_IFW_PACKAGE_RESOURCES + CPACK_IFW_PACKAGE_RUN_PROGRAM + CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS + CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION + CPACK_IFW_PACKAGE_SIGNING_IDENTITY CPACK_IFW_PACKAGE_START_MENU_DIRECTORY CPACK_IFW_PACKAGE_STYLE_SHEET CPACK_IFW_PACKAGE_TITLE @@ -2846,6 +2879,11 @@ CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE CPACK_PRODUCTBUILD_BACKGROUND_SCALING CPACK_PRODUCTBUILD_BACKGROUND_UTI + CPACK_PRODUCTBUILD_DOMAINS + CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE + CPACK_PRODUCTBUILD_DOMAINS_ROOT + CPACK_PRODUCTBUILD_DOMAINS_USER + CPACK_PRODUCTBUILD_IDENTIFIER CPACK_PRODUCTBUILD_IDENTITY_NAME CPACK_PRODUCTBUILD_KEYCHAIN_PATH CPACK_PRODUCTBUILD_RESOURCES_DIR @@ -2944,6 +2982,7 @@ CPACK_WIX_ROOT_FEATURE_TITLE CPACK_WIX_ROOT_FOLDER_ID CPACK_WIX_SKIP_PROGRAM_FOLDER + CPACK_WIX_SKIP_WIX_UI_EXTENSION CPACK_WIX_TEMPLATE CPACK_WIX_UI_BANNER CPACK_WIX_UI_DIALOG @@ -3010,6 +3049,7 @@ CTEST_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY + CTEST_SUBMIT_INACTIVITY_TIMEOUT CTEST_SUBMIT_URL CTEST_SVN_COMMAND CTEST_SVN_OPTIONS @@ -3523,6 +3563,7 @@ LDFLAGS MACOSX_DEPLOYMENT_TARGET PATH + QTIFWDIR RC RCFLAGS SWIFTC @@ -3682,6 +3723,7 @@ DEPLOYMENT_REMOTE_DIRECTORY DEPRECATION DISABLE_PRECOMPILE_HEADERS + DOTNET_SDK DOTNET_TARGET_FRAMEWORK DOTNET_TARGET_FRAMEWORK_VERSION ENABLE_EXPORTS @@ -3700,6 +3742,13 @@ GENERATOR_FILE_NAME GNUtoMS HAS_CXX + HEADER_DIRS + HEADER_SET + HEADER_SETS + HIP_ARCHITECTURES + HIP_EXTENSIONS + HIP_STANDARD + HIP_STANDARD_REQUIRED IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_COMMON_LANGUAGE_RUNTIME @@ -3713,6 +3762,7 @@ IMPORTED_LINK_INTERFACE_MULTIPLICITY IMPORTED_LOCATION IMPORTED_NO_SONAME + IMPORTED_NO_SYSTEM IMPORTED_OBJECTS IMPORTED_SONAME IMPORT_PREFIX @@ -3726,6 +3776,7 @@ INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS + INTERFACE_HEADER_SETS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_DEPENDS INTERFACE_LINK_DIRECTORIES @@ -3753,6 +3804,7 @@ LINK_INTERFACE_LIBRARIES LINK_INTERFACE_MULTIPLICITY LINK_LIBRARIES + LINK_LIBRARIES_ONLY_TARGETS LINK_OPTIONS LINK_SEARCH_END_STATIC LINK_SEARCH_START_STATIC @@ -3864,6 +3916,7 @@ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE XCODE_SCHEME_ENVIRONMENT XCODE_SCHEME_EXECUTABLE XCODE_SCHEME_GUARD_MALLOC @@ -7284,7 +7337,7 @@ - + diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/css.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/css.xml index 37da5ea3746..d929ba9a345 100644 --- a/src/libs/3rdparty/syntax-highlighting/data/syntax/css.xml +++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/css.xml @@ -38,7 +38,7 @@ Changelog: --> - + @@ -665,6 +665,7 @@ Changelog: none hidden + initial dotted dashed solid @@ -729,23 +730,9 @@ Changelog: katakana hiragana-iroha katakana-iroha - inline - inline-block - block list-item - run-in compact marker - table - inline-table - table-row-group - table-header-group - table-footer-group - table-row - table-column-group - table-column - table-cell - table-caption crosshair default pointer @@ -765,15 +752,20 @@ Changelog: absolute always avoid + avoid-page + avoid-column + avoid-region below bidi-override blink both + break-word capitalize caption clip close-quote collapse + column condensed crop cross @@ -843,6 +835,41 @@ Changelog: contain cover + + + block + inline + run-in + + flow + flow-root + table + flex + grid + ruby + + list-item + + table-row-group + table-header-group + table-footer-group + table-row + table-cell + table-column-group + table-column + table-caption + ruby-base + ruby-text + ruby-base-container + ruby-text-container + + contents + + inline-block + inline-table + inline-flex + inline-grid + all ease @@ -991,6 +1018,7 @@ Changelog: pink plum powderblue + rebeccapurple rosybrown royalblue saddlebrown @@ -1060,6 +1088,22 @@ Changelog: var url + + min + max + clamp + toggle + hwb + device-cmyk + color + element + image + image-set + conic-gradient + + + symbols + rect @@ -1678,6 +1722,7 @@ Changelog: + diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/python.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/python.xml index 676872f03fc..76649eeaddd 100644 --- a/src/libs/3rdparty/syntax-highlighting/data/syntax/python.xml +++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/python.xml @@ -52,7 +52,7 @@ - + import @@ -408,10 +408,16 @@ - + + + + + + + diff --git a/src/libs/3rdparty/syntax-highlighting/data/themes/homunculus.theme b/src/libs/3rdparty/syntax-highlighting/data/themes/homunculus.theme new file mode 100644 index 00000000000..ab48ead1706 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/data/themes/homunculus.theme @@ -0,0 +1,177 @@ +{ + "custom-styles": { + "Common Lisp": { + "Brackets": { + "selected-text-color": "#904200", + "text-color": "#005f88" + } + } + }, + "editor-colors": { + "BackgroundColor": "#f7f3f3", + "BracketMatching": "#fceae2", + "CodeFolding": "#94caef", + "CurrentLine": "#daecf7", + "CurrentLineNumber": "#1e1e1e", + "IconBorder": "#f0f0f0", + "IndentationLine": "#d2d2d2", + "LineNumbers": "#a0a0a0", + "MarkBookmark": "#005275", + "MarkBreakpointActive": "#ff0000", + "MarkBreakpointDisabled": "#ff00ff", + "MarkBreakpointReached": "#ffff00", + "MarkError": "#ff0000", + "MarkExecution": "#a0a0a4", + "MarkWarning": "#00ff00", + "ModifiedLines": "#fdbc4b", + "ReplaceHighlight": "#25d970", + "SavedLines": "#2ecc71", + "SearchHighlight": "#e0af82", + "Separator": "#d5d5d5", + "SpellChecking": "#bf0303", + "TabMarker": "#d2d2d2", + "TemplateBackground": "#d6d2d0", + "TemplateFocusedPlaceholder": "#76da98", + "TemplatePlaceholder": "#baf8ce", + "TemplateReadOnlyPlaceholder": "#f6e6e6", + "TextSelection": "#bcbcbc", + "WordWrapMarker": "#ededed" + }, + "metadata": { + "copyright": [ + "SPDX-FileCopyrightText: 2021 shenlebantongying " + ], + "license": "SPDX-License-Identifier: MIT", + "name": "Homunculus", + "revision": 1 + }, + "text-styles": { + "Alert": { + "background-color": "#f7e6e6", + "bold": true, + "selected-text-color": "#9c0e0e", + "text-color": "#bf0303" + }, + "Annotation": { + "selected-text-color": "#000000", + "text-color": "#ca60ca" + }, + "Attribute": { + "selected-text-color": "#000000", + "text-color": "#0057ae" + }, + "BaseN": { + "selected-text-color": "#000000", + "text-color": "#b08000" + }, + "BuiltIn": { + "selected-text-color": "#000000", + "text-color": "#644a9b" + }, + "Char": { + "selected-text-color": "#000000", + "text-color": "#924c9d" + }, + "Comment": { + "selected-text-color": "#000000", + "text-color": "#505050" + }, + "CommentVar": { + "selected-text-color": "#ffffff", + "text-color": "#0095ff" + }, + "Constant": { + "selected-text-color": "#000000", + "text-color": "#aa5500" + }, + "ControlFlow": { + "selected-text-color": "#000000", + "text-color": "#005f88" + }, + "DataType": { + "selected-text-color": "#000000", + "text-color": "#0057ae" + }, + "DecVal": { + "selected-text-color": "#000000", + "text-color": "#b08000" + }, + "Documentation": { + "selected-text-color": "#000000", + "text-color": "#2a486a" + }, + "Error": { + "selected-text-color": "#9c0e0e", + "text-color": "#bf0303", + "underline": true + }, + "Extension": { + "selected-text-color": "#000000", + "text-color": "#0095ff" + }, + "Float": { + "selected-text-color": "#000000", + "text-color": "#b08000" + }, + "Function": { + "selected-text-color": "#000000", + "text-color": "#721045" + }, + "Import": { + "selected-text-color": "#000000", + "text-color": "#813e00" + }, + "Information": { + "selected-text-color": "#000000", + "text-color": "#b08000" + }, + "Keyword": { + "selected-text-color": "#000000", + "text-color": "#5317ac" + }, + "Normal": { + "selected-text-color": "#000000", + "text-color": "#303030" + }, + "Operator": { + "selected-text-color": "#000000", + "text-color": "#b455b4" + }, + "Others": { + "selected-text-color": "#000000", + "text-color": "#006e28" + }, + "Preprocessor": { + "selected-text-color": "#000000", + "text-color": "#006e28" + }, + "RegionMarker": { + "selected-text-color": "#000000", + "text-color": "#0057ae" + }, + "SpecialChar": { + "selected-text-color": "#000000", + "text-color": "#3daee9" + }, + "SpecialString": { + "selected-text-color": "#000000", + "text-color": "#854001" + }, + "String": { + "selected-text-color": "#000000", + "text-color": "#2544bb" + }, + "Variable": { + "selected-text-color": "#000000", + "text-color": "#0057ae" + }, + "VerbatimString": { + "selected-text-color": "#000000", + "text-color": "#2544bb" + }, + "Warning": { + "selected-text-color": "#9c0e0e", + "text-color": "#bf0303" + } + } +} diff --git a/src/libs/3rdparty/syntax-highlighting/src/indexer/CMakeLists.txt b/src/libs/3rdparty/syntax-highlighting/src/indexer/CMakeLists.txt index 9aede60ad78..77a16faf22e 100644 --- a/src/libs/3rdparty/syntax-highlighting/src/indexer/CMakeLists.txt +++ b/src/libs/3rdparty/syntax-highlighting/src/indexer/CMakeLists.txt @@ -19,6 +19,7 @@ elseif(CMAKE_CROSSCOMPILING) CMAKE_ARGS -DKSYNTAXHIGHLIGHTING_USE_GUI=OFF -DECM_DIR=${ECM_DIR} -DCMAKE_PREFIX_PATH=${NATIVE_PREFIX} -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR} + -DQT_MAJOR_VERSION=${QT_MAJOR_VERSION} INSTALL_COMMAND "" BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/native_katehighlightingindexer-prefix/src/native_katehighlightingindexer-build/bin/katehighlightingindexer ) diff --git a/src/libs/3rdparty/syntax-highlighting/src/lib/CMakeLists.txt b/src/libs/3rdparty/syntax-highlighting/src/lib/CMakeLists.txt index 2ab0e603a29..58533cc7130 100644 --- a/src/libs/3rdparty/syntax-highlighting/src/lib/CMakeLists.txt +++ b/src/libs/3rdparty/syntax-highlighting/src/lib/CMakeLists.txt @@ -47,7 +47,7 @@ set_target_properties(KF5SyntaxHighlighting PROPERTIES SOVERSION ${SyntaxHighlighting_SOVERSION} EXPORT_NAME SyntaxHighlighting ) -target_include_directories(KF5SyntaxHighlighting INTERFACE "$") +target_include_directories(KF5SyntaxHighlighting INTERFACE "$") target_include_directories(KF5SyntaxHighlighting PUBLIC "$") target_link_libraries(KF5SyntaxHighlighting PUBLIC @@ -56,26 +56,38 @@ target_link_libraries(KF5SyntaxHighlighting Qt${QT_MAJOR_VERSION}::Network ) -ecm_generate_headers(SyntaxHighlighting_HEADERS - HEADER_NAMES - AbstractHighlighter - Definition - DefinitionDownloader - FoldingRegion - Format - Repository - State - SyntaxHighlighter - Theme - WildcardMatcher +set(Forwarding_Header_Names + AbstractHighlighter + Definition + DefinitionDownloader + FoldingRegion + Format + Repository + State + SyntaxHighlighter + Theme + WildcardMatcher +) + +ecm_generate_headers(CamelCase_HEADERS + HEADER_NAMES ${Forwarding_Header_Names} REQUIRED_HEADERS SyntaxHighlighting_HEADERS + # Avoid unprefixed headers in build dir (which is part of library's build interface include directories) + # and thus visible to anything linking it in the same build, incl. when used with CMake's FetchContent. + # E.g. there can be look-up clashes on case-insensitive filesystems with C++20's file and + # the library's generated "Format" file. + # See BUG: 453759 + OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/camelcaseheaders ) install(TARGETS KF5SyntaxHighlighting EXPORT KF5SyntaxHighlightingTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + install(FILES + ${CamelCase_HEADERS} ${SyntaxHighlighting_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_export.h - DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KSyntaxHighlighting) + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KSyntaxHighlighting/KSyntaxHighlighting +) if(BUILD_QCH) ecm_add_qch( diff --git a/src/libs/3rdparty/syntax-highlighting/src/lib/repository.h b/src/libs/3rdparty/syntax-highlighting/src/lib/repository.h index 9e19ecda566..3739b55e784 100644 --- a/src/libs/3rdparty/syntax-highlighting/src/lib/repository.h +++ b/src/libs/3rdparty/syntax-highlighting/src/lib/repository.h @@ -9,9 +9,9 @@ #include "ksyntaxhighlighting_export.h" +#include #include #include -#include QT_BEGIN_NAMESPACE class QString; diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/CMakeLists.txt b/src/libs/3rdparty/syntax-highlighting/src/quick/CMakeLists.txt new file mode 100644 index 00000000000..f40b3ae1ca2 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/CMakeLists.txt @@ -0,0 +1,17 @@ +# SPDX-FileCopyrightText: 2018 Eike Hein +# SPDX-FileCopyrightText: 2021 Volker Krause +# SPDX-License-Identifier: BSD-3-Clause + +add_library(kquicksyntaxhighlightingplugin) +target_sources(kquicksyntaxhighlightingplugin PRIVATE + kquicksyntaxhighlightingplugin.cpp + kquicksyntaxhighlighter.cpp + repositorywrapper.cpp +) +target_link_libraries(kquicksyntaxhighlightingplugin PRIVATE + KF5SyntaxHighlighting + Qt${QT_MAJOR_VERSION}::Quick +) + +install(TARGETS kquicksyntaxhighlightingplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/syntaxhighlighting) +install(FILES qmldir DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/syntaxhighlighting) diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlighter.cpp b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlighter.cpp new file mode 100644 index 00000000000..428a6c40cba --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlighter.cpp @@ -0,0 +1,112 @@ +/* + SPDX-FileCopyrightText: 2018 Eike Hein + SPDX-FileCopyrightText: 2021 Volker Krause + + SPDX-License-Identifier: MIT +*/ + +#include "kquicksyntaxhighlighter.h" + +#include +#include + +#include +#include +#include +#include + +using namespace KSyntaxHighlighting; + +extern Repository *defaultRepository(); + +KQuickSyntaxHighlighter::KQuickSyntaxHighlighter(QObject *parent) + : QObject(parent) + , m_textEdit(nullptr) + , m_highlighter(new KSyntaxHighlighting::SyntaxHighlighter(this)) +{ +} + +KQuickSyntaxHighlighter::~KQuickSyntaxHighlighter() = default; + +QObject *KQuickSyntaxHighlighter::textEdit() const +{ + return m_textEdit; +} + +void KQuickSyntaxHighlighter::setTextEdit(QObject *textEdit) +{ + if (m_textEdit != textEdit) { + m_textEdit = textEdit; + m_highlighter->setDocument(m_textEdit->property("textDocument").value()->textDocument()); + } +} + +QVariant KQuickSyntaxHighlighter::definition() const +{ + return QVariant::fromValue(m_definition); +} + +void KQuickSyntaxHighlighter::setDefinition(const QVariant &definition) +{ + Definition def; + if (definition.type() == QVariant::String) { + def = unwrappedRepository()->definitionForName(definition.toString()); + } else { + def = definition.value(); + } + + if (m_definition != def) { + m_definition = def; + + m_highlighter->setTheme(m_theme.isValid() ? m_theme : unwrappedRepository()->themeForPalette(QGuiApplication::palette())); + m_highlighter->setDefinition(def); + + Q_EMIT definitionChanged(); + } +} + +QVariant KQuickSyntaxHighlighter::theme() const +{ + return QVariant::fromValue(m_theme); +} + +void KQuickSyntaxHighlighter::setTheme(const QVariant &theme) +{ + Theme t; + if (theme.type() == QVariant::String) { + t = unwrappedRepository()->theme(theme.toString()); + } else if (theme.type() == QVariant::Int) { + t = unwrappedRepository()->defaultTheme(static_cast(theme.toInt())); + } else { + t = theme.value(); + } + + if (m_theme.name() != t.name()) { + m_theme = t; + m_highlighter->setTheme(m_theme); + m_highlighter->rehighlight(); + Q_EMIT themeChanged(); + } +} + +RepositoryWrapper *KQuickSyntaxHighlighter::repository() const +{ + return m_repository; +} + +void KQuickSyntaxHighlighter::setRepository(RepositoryWrapper *repository) +{ + if (m_repository == repository) { + return; + } + m_repository = repository; + Q_EMIT repositoryChanged(); +} + +Repository *KQuickSyntaxHighlighter::unwrappedRepository() const +{ + if (m_repository) { + return m_repository->m_repository; + } + return defaultRepository(); +} diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlighter.h b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlighter.h new file mode 100644 index 00000000000..38cd7b52af1 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlighter.h @@ -0,0 +1,66 @@ +/* + SPDX-FileCopyrightText: 2018 Eike Hein + SPDX-FileCopyrightText: 2021 Volker Krause + + SPDX-License-Identifier: MIT +*/ + +#ifndef KQUICKSYNTAXHIGHLIGHTER_H +#define KQUICKSYNTAXHIGHLIGHTER_H + +#include "repositorywrapper.h" + +#include +#include + +#include +#include + +namespace KSyntaxHighlighting +{ +class Repository; +class SyntaxHighlighter; +} + +class KQuickSyntaxHighlighter : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QObject *textEdit READ textEdit WRITE setTextEdit NOTIFY textEditChanged) + Q_PROPERTY(QVariant definition READ definition WRITE setDefinition NOTIFY definitionChanged) + Q_PROPERTY(QVariant theme READ theme WRITE setTheme NOTIFY themeChanged) + Q_PROPERTY(RepositoryWrapper *repository READ repository WRITE setRepository NOTIFY repositoryChanged) + +public: + explicit KQuickSyntaxHighlighter(QObject *parent = nullptr); + ~KQuickSyntaxHighlighter() override; + + QObject *textEdit() const; + void setTextEdit(QObject *textEdit); + + QVariant definition() const; + void setDefinition(const QVariant &definition); + + QVariant theme() const; + void setTheme(const QVariant &theme); + + RepositoryWrapper *repository() const; + void setRepository(RepositoryWrapper *repository); + +Q_SIGNALS: + void textEditChanged() const; + void definitionChanged() const; + void themeChanged(); + void repositoryChanged(); + +private: + KSyntaxHighlighting::Repository *unwrappedRepository() const; + + QObject *m_textEdit; + KSyntaxHighlighting::Definition m_definition; + KSyntaxHighlighting::Theme m_theme; + RepositoryWrapper *m_repository = nullptr; + KSyntaxHighlighting::SyntaxHighlighter *m_highlighter = nullptr; +}; + +#endif // KQUICKSYNTAXHIGHLIGHTER_H diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlightingplugin.cpp b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlightingplugin.cpp new file mode 100644 index 00000000000..62c571e1b68 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlightingplugin.cpp @@ -0,0 +1,47 @@ +/* + SPDX-FileCopyrightText: 2018 Eike Hein + SPDX-FileCopyrightText: 2021 Volker Krause + + SPDX-License-Identifier: MIT +*/ + +#include "kquicksyntaxhighlightingplugin.h" +#include "kquicksyntaxhighlighter.h" +#include "repositorywrapper.h" + +#include +#include +#include + + +#include + +using namespace KSyntaxHighlighting; + +Repository *defaultRepository() +{ + static std::unique_ptr s_instance; + if (!s_instance) { + s_instance = std::make_unique(); + } + return s_instance.get(); +} + +void KQuickSyntaxHighlightingPlugin::registerTypes(const char *uri) +{ + Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.syntaxhighlighting")); + qRegisterMetaType(); + qRegisterMetaType>(); + qRegisterMetaType(); + qRegisterMetaType>(); + qmlRegisterType(uri, 1, 0, "SyntaxHighlighter"); + qmlRegisterUncreatableType(uri, 1, 0, "Definition", {}); + qmlRegisterUncreatableType(uri, 1, 0, "Theme", {}); + qmlRegisterSingletonType(uri, 1, 0, "Repository", [](auto engine, auto scriptEngine) { + (void)engine; + (void)scriptEngine; + auto repo = new RepositoryWrapper; + repo->m_repository = defaultRepository(); + return repo; + }); +} diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlightingplugin.h b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlightingplugin.h new file mode 100644 index 00000000000..a92405bb156 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/kquicksyntaxhighlightingplugin.h @@ -0,0 +1,22 @@ +/* + SPDX-FileCopyrightText: 2018 Eike Hein + + SPDX-License-Identifier: MIT +*/ + +#ifndef KQUICKSYNTAXHIGHLIGHTINGPLUGIN_H +#define KQUICKSYNTAXHIGHLIGHTINGPLUGIN_H + +#include +#include + +class KQuickSyntaxHighlightingPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + +public: + void registerTypes(const char *uri) override; +}; + +#endif // KQUICKSYNTAXHIGHLIGHTINGPLUGIN_H diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/qmldir b/src/libs/3rdparty/syntax-highlighting/src/quick/qmldir new file mode 100644 index 00000000000..0837f1bed18 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/qmldir @@ -0,0 +1,2 @@ +module org.kde.syntaxhighlighting +plugin kquicksyntaxhighlightingplugin diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/qmldir.license b/src/libs/3rdparty/syntax-highlighting/src/quick/qmldir.license new file mode 100644 index 00000000000..c475521fa54 --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/qmldir.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2018 Eike Hein +SPDX-License-Identifier: CC0-1.0 diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/repositorywrapper.cpp b/src/libs/3rdparty/syntax-highlighting/src/quick/repositorywrapper.cpp new file mode 100644 index 00000000000..88030c3912f --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/repositorywrapper.cpp @@ -0,0 +1,65 @@ +/* + SPDX-FileCopyrightText: 2021 Volker Krause + + SPDX-License-Identifier: MIT +*/ + +#include "repositorywrapper.h" + +#include +#include +#include + +using namespace KSyntaxHighlighting; + +RepositoryWrapper::RepositoryWrapper(QObject *parent) + : QObject(parent) +{ +} + +Definition RepositoryWrapper::definitionForName(const QString &defName) const +{ + return m_repository->definitionForName(defName); +} + +Definition RepositoryWrapper::definitionForFileName(const QString &fileName) const +{ + return m_repository->definitionForFileName(fileName); +} + +QVector RepositoryWrapper::definitionsForFileName(const QString &fileName) const +{ + return m_repository->definitionsForFileName(fileName); +} + +Definition RepositoryWrapper::definitionForMimeType(const QString &mimeType) const +{ + return m_repository->definitionForMimeType(mimeType); +} + +QVector RepositoryWrapper::definitionsForMimeType(const QString &mimeType) const +{ + return m_repository->definitionsForMimeType(mimeType); +} + +QVector RepositoryWrapper::definitions() const +{ + return m_repository->definitions(); +} + +QVector RepositoryWrapper::themes() const +{ + return m_repository->themes(); +} + +Theme RepositoryWrapper::theme(const QString &themeName) const +{ + return m_repository->theme(themeName); +} + +Theme RepositoryWrapper::defaultTheme(DefaultTheme t) const +{ + return m_repository->defaultTheme(static_cast(t)); +} + +#include "moc_repositorywrapper.cpp" diff --git a/src/libs/3rdparty/syntax-highlighting/src/quick/repositorywrapper.h b/src/libs/3rdparty/syntax-highlighting/src/quick/repositorywrapper.h new file mode 100644 index 00000000000..d4fb8d251cc --- /dev/null +++ b/src/libs/3rdparty/syntax-highlighting/src/quick/repositorywrapper.h @@ -0,0 +1,45 @@ +/* + SPDX-FileCopyrightText: 2021 Volker Krause + + SPDX-License-Identifier: MIT +*/ + +#ifndef REPOSITORYWRAPPER_H +#define REPOSITORYWRAPPER_H + +#include + +namespace KSyntaxHighlighting +{ +class Definition; +class Repository; +class Theme; +} + +// TODO KF6: merge this into KSyntaxHighlighting::Repository +class RepositoryWrapper : public QObject +{ + Q_OBJECT + // TODO KF6: NOTIFY on reload + Q_PROPERTY(QVector definitions READ definitions CONSTANT) + Q_PROPERTY(QVector themes READ themes CONSTANT) +public: + explicit RepositoryWrapper(QObject *parent = nullptr); + + Q_INVOKABLE KSyntaxHighlighting::Definition definitionForName(const QString &defName) const; + Q_INVOKABLE KSyntaxHighlighting::Definition definitionForFileName(const QString &fileName) const; + Q_INVOKABLE QVector definitionsForFileName(const QString &fileName) const; + Q_INVOKABLE KSyntaxHighlighting::Definition definitionForMimeType(const QString &mimeType) const; + Q_INVOKABLE QVector definitionsForMimeType(const QString &mimeType) const; + QVector definitions() const; + + QVector themes() const; + Q_INVOKABLE KSyntaxHighlighting::Theme theme(const QString &themeName) const; + enum DefaultTheme { LightTheme, DarkTheme }; + Q_ENUM(DefaultTheme) + Q_INVOKABLE KSyntaxHighlighting::Theme defaultTheme(DefaultTheme t = LightTheme) const; + + KSyntaxHighlighting::Repository *m_repository = nullptr; +}; + +#endif // REPOSITORYWRAPPER_H