D7: editor multi-cursor support
Add secondary_cursors field to Editor with insert_char_multi, delete_back_multi, delete_forward_multi methods. Right-to-left processing ensures position shifts don't corrupt earlier insertions. 7 new tests: add/clear, all_positions, insert, delete_back, delete_forward, unicode, duplicate-add.
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(custom_defines VERSION 6.7.0)
|
||||
|
||||
include(../test-and-comparison-helpers.cmake)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
ecm_setup_version(PROJECT VARIABLE_PREFIX ATTICA
|
||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/attica_version.h"
|
||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6AtticaConfigVersion.cmake"
|
||||
SOVERSION 6)
|
||||
|
||||
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/KF6Attica.pc")
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME KF6Attica
|
||||
DESCRIPTION "Qt library to access Open Collaboration Services"
|
||||
LIB_NAME KF6Attica
|
||||
INCLUDE_INSTALL_DIR /usr/include/Attica
|
||||
DEFINES -I\${prefix}/include/foo -I\${prefix}/include/bar
|
||||
DEPS Qt6Core Qt6Network
|
||||
FILENAME_VAR OutputFile
|
||||
)
|
||||
|
||||
compare_files(GENERATED ${OutputFile}
|
||||
ORIGINALS ${origfiles})
|
||||
file(REMOVE ${OutputFile})
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(no_description_parameter_metainfo_with_description-param VERSION 5.43)
|
||||
|
||||
include(../test-and-comparison-helpers.cmake)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
ecm_setup_version(PROJECT VARIABLE_PREFIX KCOREADDONS
|
||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h"
|
||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake"
|
||||
SOVERSION 5)
|
||||
|
||||
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/KF5CoreAddons2.pc")
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/metainfo_with_description.yaml
|
||||
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_with_description.yaml ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons2
|
||||
DEPS Qt5Core
|
||||
INCLUDE_INSTALL_DIR /usr/KCoreAddons
|
||||
FILENAME_VAR OutputFile)
|
||||
|
||||
compare_files(GENERATED ${OutputFile}
|
||||
ORIGINALS ${origfiles})
|
||||
file(REMOVE ${OutputFile})
|
||||
file(REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(no_description_parameter_metainfo_with_description-param VERSION 5.43)
|
||||
|
||||
include(../test-and-comparison-helpers.cmake)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
ecm_setup_version(PROJECT VARIABLE_PREFIX KCOREADDONS
|
||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h"
|
||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake"
|
||||
SOVERSION 5)
|
||||
|
||||
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/KF5CoreAddons3.pc")
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/metainfo_with_empty_description.yaml
|
||||
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_with_empty_description.yaml ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons3
|
||||
DEPS Qt5Core
|
||||
INCLUDE_INSTALL_DIR /usr/KCoreAddons
|
||||
FILENAME_VAR OutputFile)
|
||||
|
||||
compare_files(GENERATED ${OutputFile}
|
||||
ORIGINALS ${origfiles})
|
||||
file(REMOVE ${OutputFile})
|
||||
file(REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(no_description_parameter_metainfo_without_description VERSION 5.43)
|
||||
|
||||
include(../test-and-comparison-helpers.cmake)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
ecm_setup_version(PROJECT VARIABLE_PREFIX KCOREADDONS
|
||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h"
|
||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake"
|
||||
SOVERSION 5)
|
||||
|
||||
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/KF5CoreAddons3.pc")
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/metainfo_without_description.yaml
|
||||
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_without_description.yaml ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons3
|
||||
DEPS Qt5Core
|
||||
INCLUDE_INSTALL_DIR /usr/KCoreAddons
|
||||
FILENAME_VAR OutputFile)
|
||||
|
||||
compare_files(GENERATED ${OutputFile}
|
||||
ORIGINALS ${origfiles})
|
||||
file(REMOVE ${OutputFile})
|
||||
file(REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(no_optional_arguments VERSION 5.43)
|
||||
|
||||
include(../test-and-comparison-helpers.cmake)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
ecm_setup_version(PROJECT VARIABLE_PREFIX KCOREADDONS
|
||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h"
|
||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake"
|
||||
SOVERSION 5)
|
||||
|
||||
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/KF5CoreAddons.pc")
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons
|
||||
DESCRIPTION "KF5CoreAddons test"
|
||||
DEPS Qt5Core
|
||||
FILENAME_VAR OutputFile)
|
||||
|
||||
compare_files(GENERATED ${OutputFile}
|
||||
ORIGINALS ${origfiles})
|
||||
file(REMOVE ${OutputFile})
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
set(ECM_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../modules")
|
||||
set(CMAKE_MODULE_PATH "${ECM_MODULE_DIR}")
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX "/usr")
|
||||
|
||||
function (compare_files)
|
||||
set(options)
|
||||
set(oneValueArgs GENERATED ORIGINALS)
|
||||
set(multiValueArgs)
|
||||
cmake_parse_arguments(CF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
list(LENGTH CF_GENERATED count)
|
||||
math(EXPR last "${count}-1")
|
||||
foreach(i RANGE ${last})
|
||||
list(GET CF_GENERATED ${i} generated_file)
|
||||
if (NOT EXISTS "${generated_file}")
|
||||
message(FATAL_ERROR "${generated_file} was not generated")
|
||||
endif()
|
||||
file(READ "${generated_file}" file_contents)
|
||||
string(STRIP "${file_contents}" file_contents)
|
||||
|
||||
list(GET CF_ORIGINALS ${i} original_file)
|
||||
if (NOT EXISTS "${original_file}")
|
||||
message(FATAL_ERROR "Original ${original_file} was not found")
|
||||
endif()
|
||||
file(READ "${original_file}" original_contents)
|
||||
string(STRIP "${original_contents}" original_contents)
|
||||
|
||||
if(NOT original_contents STREQUAL file_contents)
|
||||
message(FATAL_ERROR "Different files: ${original_file} ${generated_file}")
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(with_an_URL_parameter VERSION 5.43)
|
||||
|
||||
include(../test-and-comparison-helpers.cmake)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
ecm_setup_version(PROJECT VARIABLE_PREFIX KCOREADDONS
|
||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h"
|
||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake"
|
||||
SOVERSION 5)
|
||||
|
||||
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/KF5CoreAddons5.pc")
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons5
|
||||
DESCRIPTION "KF5CoreAddons test"
|
||||
URL "https://www.example.org/"
|
||||
DEPS Qt5Core
|
||||
INCLUDE_INSTALL_DIR /usr/KCoreAddons
|
||||
FILENAME_VAR OutputFile)
|
||||
|
||||
compare_files(GENERATED ${OutputFile}
|
||||
ORIGINALS ${origfiles})
|
||||
file(REMOVE ${OutputFile})
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(with_public_and_private_dependencies VERSION 5.43)
|
||||
|
||||
include(../test-and-comparison-helpers.cmake)
|
||||
|
||||
include(ECMGeneratePkgConfigFile)
|
||||
include(ECMSetupVersion)
|
||||
|
||||
ecm_setup_version(PROJECT VARIABLE_PREFIX KCOREADDONS
|
||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcoreaddons_version.h"
|
||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfigVersion.cmake"
|
||||
SOVERSION 5)
|
||||
|
||||
set(origfiles "${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/KF5CoreAddons4.pc")
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/ECMGeneratePkgConfigFile/metainfo_without_description.yaml
|
||||
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/metainfo_without_description.yaml ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
|
||||
ecm_generate_pkgconfig_file(BASE_NAME KF5CoreAddons4
|
||||
DEPS Public1 PRIVATE Private1 Private2 PUBLIC Public2
|
||||
INCLUDE_INSTALL_DIR /usr/KCoreAddons
|
||||
FILENAME_VAR OutputFile)
|
||||
|
||||
compare_files(GENERATED ${OutputFile}
|
||||
ORIGINALS ${origfiles})
|
||||
file(REMOVE ${OutputFile})
|
||||
file(REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/metainfo.yaml)
|
||||
Reference in New Issue
Block a user