diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index b9997a9b75fc..5581159eaf8d 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -19,6 +19,7 @@ jobs: repo: - php/php-src + - googleapis/google-cloud-cpp - aws-amplify/docs - Azure/azure-rest-api-specs - alexiosc/megistos @@ -55,4 +56,4 @@ jobs: && npm ci && npm run integration-tests -- ${{ matrix.repo }} -# cspell:ignore MartinThoma +# cspell:ignore MartinThoma googleapis diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7a4a68fbc68e..4519260ec6bd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,14 +6,47 @@ on: - master jobs: - test: + test-old-node-versions: runs-on: ${{ matrix.os }} strategy: matrix: node-version: + # List of supported node versions (latest is tested in `test-os`) - 12.x - 14.x + + os: + - ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2.1.5 + with: + node-version: ${{ matrix.node-version }} + + - run: npm ci + + - run: npm test + + - name: verify trace command + run: node ./bin.js trace test + + - name: verify the spell checker runs + run: node ./bin.js -c cspellrc.json + + # Ensure the repository is clean after build & test + - run: git --no-pager diff --compact-summary --exit-code + + test-os: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + node-version: + # Test the latest node version here, move older versions to `test-old-node-versions` - 15.x os: diff --git a/integration-tests/config/config.json b/integration-tests/config/config.json index 0c59ac24c8b0..498ab3693cc4 100644 --- a/integration-tests/config/config.json +++ b/integration-tests/config/config.json @@ -246,6 +246,18 @@ ], "branch": "issue-1114", "commit": "issue-1114" + }, + { + "path": "googleapis/google-cloud-cpp", + "url": "https://github.com/googleapis/google-cloud-cpp.git", + "args": [ + "-c", + "ci/cspell.json", + "**/*", + "-e", + "{*.BUILD,BUILD,CHANGELOG.md,*.sh,*.cfg,*.ps1,Dockerfile.*,*.Dockerfile,*.{yaml,xml,json,cmake}}" + ], + "commit": "67f0ddcdb83bc47198fcdd6a504f18ca471cab8c" } ] } diff --git a/integration-tests/snapshots/googleapis/google-cloud-cpp/snapshot.txt b/integration-tests/snapshots/googleapis/google-cloud-cpp/snapshot.txt new file mode 100644 index 000000000000..76fc7baeebdf --- /dev/null +++ b/integration-tests/snapshots/googleapis/google-cloud-cpp/snapshot.txt @@ -0,0 +1,328 @@ + +Repository: googleapis/google-cloud-cpp +Url: "https://github.com/googleapis/google-cloud-cpp.git" +Args: ["-c","ci/cspell.json","**/*","-e","{*.BUILD,BUILD,CHANGELOG.md,*.sh,*.cfg,*.ps1,Dockerfile.*,*.Dockerfile,*.{yaml,xml,json,cmake}}"] +Lines: + CSpell: Files checked: 1655, Issues found: 2880 in 221 files + exit code: 1 +./ARCHITECTURE.md:186:1 - Unknown word (discoverability) -- discoverability of available option +./ARCHITECTURE.md:22:61 - Unknown word (retriable) -- RPCs that fail with a retriable error, +./ARCHITECTURE.md:59:4 - Unknown word (quickstart) -- - `quickstart/` contains a small program +./ARCHITECTURE.md:63:17 - Unknown word (Doxygen) -- both into the Doxygen reference documentation +./ARCHITECTURE.md:90:60 - Unknown word (proto) -- a `service` in the `.proto` definitions +./ARCHITECTURE.md:99:19 - Unknown word (bigtable) -- - Bigtable has a [bigtable::Table](/google/cloud +./ARCHITECTURE.md:99:3 - Unknown word (Bigtable) -- - Bigtable has a [bigtable::Table +./CMakeLists.txt:100:6 - Unknown word (ccache) -- # If ccache is installed use it +./CMakeLists.txt:102:32 - Unknown word (CCACHE) -- GOOGLE_CLOUD_CPP_ENABLE_CCACHE "Automatically use ccache +./CMakeLists.txt:125:18 - Unknown word (hositng) -- # googleapis.dev hositng. +./CMakeLists.txt:126:38 - Unknown word (GOOGLEAPIS) -- CLOUD_CPP_GEN_DOCS_FOR_GOOGLEAPIS_DEV +./CMakeLists.txt:131:40 - Unknown word (REFDOC) -- CLOUD_CPP_USE_MASTER_FOR_REFDOC_LINKS +./CMakeLists.txt:132:44 - Unknown word (refdoc) -- the version part for refdoc relative links" OFF +./CMakeLists.txt:139:32 - Unknown word (BIGTABLE) -- GOOGLE_CLOUD_CPP_ENABLE_BIGTABLE "Enable building the +./CMakeLists.txt:141:32 - Unknown word (BIGQUERY) -- GOOGLE_CLOUD_CPP_ENABLE_BIGQUERY "Enable building the +./CMakeLists.txt:141:62 - Unknown word (Bigquery) -- Enable building the Bigquery library." +./CMakeLists.txt:147:32 - Unknown word (FIRESTORE) -- GOOGLE_CLOUD_CPP_ENABLE_FIRESTORE +./CMakeLists.txt:148:29 - Unknown word (Firestore) -- Enable building the Firestore library." ON) +./CMakeLists.txt:166:12 - Unknown word (TOUPPER) -- string(TOUPPER "${library}" _library +./CMakeLists.txt:200:39 - Unknown word (protobufs) -- target results in all protobufs being compiled. +./CMakeLists.txt:20:13 - Unknown word (BUGREPORT) -- set(PACKAGE_BUGREPORT "https://github.com +./CMakeLists.txt:211:8 - Unknown word (subproject) -- # Each subproject adds dependencies to +./CMakeLists.txt:212:19 - Unknown word (doxygen) -- add_custom_target(doxygen-docs) +./CMakeLists.txt:42:45 - Unknown word (STREQUAL) -- CLOUD_CPP_CXX_STANDARD}" STREQUAL "")) +./CMakeLists.txt:94:8 - Unknown word (DGOOGLE) -- cmake -DGOOGLE_CLOUD_CPP_ENABLE_MACOS +./CODE_OF_CONDUCT.md:9:24 - Unknown word (socio) -- experience, education, socio-economic status, nationality +./README.md:8:4 - Unknown word (Codecov) -- [![Codecov Coverage status][codecov +./bazel/google_cloud_cpp_deps.bzl:127:15 - Unknown word (libcurl) -- # We need libcurl for the Google Cloud +./bazel/google_cloud_cpp_deps.bzl:19:22 - Unknown word (deps) -- def google_cloud_cpp_deps(): +./bazel/google_cloud_cpp_deps.bzl:29:30 - Unknown word (googletest) -- Load rules_cc, used by googletest +./bazel/google_cloud_cpp_deps.bzl:73:16 - Unknown word (googleapis) -- # Load the googleapis dependency. +./bazel/google_cloud_cpp_deps.bzl:86:15 - Unknown word (protobuf) -- # protobuf message. No changes +./ci/check-include-guards.gawk:27:1 - Unknown word (BEGINFILE) -- BEGINFILE { +./ci/check-include-guards.gawk:33:16 - Unknown word (toupper) -- guard_body=toupper(FILENAME) +./ci/check-include-guards.gawk:34:5 - Unknown word (gsub) -- gsub("[/\\.]", "_", guard +./ci/check-include-guards.gawk:40:1 - Unknown word (ENDFILE) -- ENDFILE { +./ci/check-include-guards.gawk:42:9 - Unknown word (printf) -- printf("%s has invalid include +./ci/check-include-guards.gawk:47:37 - Unknown word (ifndef) -- lines that start with #ifndef, #define, or #endif +./ci/cloudbuild/README.md:24:54 - Unknown word (distros) -- Linux x `N` different distros +./ci/cloudbuild/README.md:25:26 - Unknown word (MSVC) -- Compilers: Clang, GCC, MSVC +./ci/cloudbuild/README.md:33:1 - Unknown word (ubsan) -- ubsan, etc. The full matrix +./ci/cloudbuild/README.md:3:54 - Unknown word (presubmit) -- files needed for our GCB presubmit ("PR builds") +./ci/cloudbuild/README.md:4:5 - Unknown word (postsubmit) -- and postsubmit ("CI builds") builds +./ci/cloudbuild/builds/README.md:3:5 - Unknown word (cloudbuild) -- `ci/cloudbuild/build.sh` driver script +./ci/etc/README.md:13:40 - Unknown word (createinstance) -- GOOGLE_CLOUD_PROJECT}" createinstance \ +./ci/etc/README.md:22:5 - Unknown word (createtable) -- createtable quickstart families +./ci/etc/generator-golden-md5-hashes.md5:5:101 - Unknown word (idempotency) -- kitchen_sink_connection_idempotency_policy.gcpcxx.pb.cc +./ci/generate-markdown/README.md:12:4 - Unknown word (HOWTO) -- ## HOWTO: Generate the doc/packaging +./ci/generate-markdown/README.md:36:15 - Unknown word (nproc) -- export NCPU=$(nproc) +./ci/generate-markdown/README.md:36:8 - Unknown word (NCPU) -- export NCPU=$(nproc) +./ci/generate-markdown/README.md:3:20 - Unknown word (Dockerfiles) -- The CI scripts and Dockerfiles are more complex than +./ci/kokoro/README.md:101:46 - Unknown word (gserviceaccount) -- NAME}@${PROJECT_ID}.iam.gserviceaccount.com" +./ci/kokoro/README.md:108:3 - Unknown word (gsutil) -- $ gsutil iam ch serviceAccount +./ci/kokoro/README.md:109:34 - Unknown word (appspot) -- artifacts.${PROJECT_ID}.appspot.com/ +./ci/kokoro/README.md:14:46 - Unknown word (Googlers) -- Kokoro is available to Googlers only (sorry) at go/kokoro +./ci/kokoro/README.md:15:21 - Unknown word (codelabs) -- there are extensive codelabs and detailed descriptions +./ci/kokoro/README.md:33:2 - Unknown word (PRESUBMIT) -- *PRESUBMIT* thus the duplication +./ci/kokoro/README.md:43:23 - Unknown word (toolchains) -- Test with different toolchains from the ones provided +./ci/kokoro/README.md:58:21 - Unknown word (backoff) -- "try N times with a backoff" do not work during +./ci/kokoro/README.md:8:70 - Unknown word (prjects) -- supporting Open Source prjects, +./ci/kokoro/windows/build-32.bat:16:1 - Unknown word (choco) -- choco install --no-progress +./ci/kokoro/windows/build-32.bat:18:24 - Unknown word (chocolatey's) -- REM Change PATH to use chocolatey's version of Bazel +./ci/kokoro/windows/build-32.bat:27:98 - Unknown word (vcvars) -- Community\VC\Auxiliary\Build\vcvars32.bat" +./ci/kokoro/windows/build-32.bat:33:5 - Unknown word (errorlevel) -- if %errorlevel% neq 0 exit /b %errorlevel +./ci/verify_current_targets/CMakeLists.txt:17:1 - Unknown word (cmake) -- cmake_minimum_required(VERSION +./ci/verify_current_targets/CMakeLists.txt:20:5 - Unknown word (CMAKE) -- set(CMAKE_CXX_STANDARD 11) +./ci/verify_current_targets/CMakeLists.txt:34:28 - Unknown word (firestore) -- firestore iam logging) +./ci/verify_current_targets/CMakeLists.txt:45:47 - Unknown word (ARGN) -- "${name}" PRIVATE ${ARGN}) +./ci/verify_current_targets/CMakeLists.txt:47:1 - Unknown word (endfunction) -- endfunction () +./ci/verify_current_targets/CMakeLists.txt:51:1 - Unknown word (endforeach) -- endforeach () +./ci/verify_current_targets/WORKSPACE:17:21 - Unknown word (Starlark) -- # Add the necessary Starlark functions to fetch google +./ci/verify_deprecated_targets/CMakeLists.txt:101:20 - Unknown word (longrunning) -- googleapis_cpp_longrunning_operations_protos +./ci/verify_deprecated_targets/CMakeLists.txt:113:29 - Unknown word (cloudtrace) -- googleapis_cpp_devtools_cloudtrace_v2_trace_protos +./ci/verify_deprecated_targets/CMakeLists.txt:126:25 - Unknown word (datetime) -- googleapis_cpp_type_datetime_protos +./ci/verify_deprecated_targets/CMakeLists.txt:127:25 - Unknown word (dayofweek) -- googleapis_cpp_type_dayofweek_protos +./ci/verify_deprecated_targets/CMakeLists.txt:131:25 - Unknown word (latlng) -- googleapis_cpp_type_latlng_protos +./ci/verify_deprecated_targets/CMakeLists.txt:138:25 - Unknown word (timeofday) -- googleapis_cpp_type_timeofday_protos) +./ci/verify_deprecated_targets/CMakeLists.txt:61:29 - Unknown word (protos) -- test_case(t050 bigtable_protos google_cloud_cpp_common +./ci/verify_deprecated_targets/CMakeLists.txt:94:26 - Unknown word (bigquery) -- googleapis_cpp_cloud_bigquery_protos +./ci/verify_deprecated_targets/CMakeLists.txt:96:26 - Unknown word (texttospeech) -- googleapis_cpp_cloud_texttospeech_protos +./doc/adr/2018-06-18-storage-request-parameters-are-function-arguments.md:6:33 - Unknown word (Metageneration) -- the API can use `ifMetagenerationMatch` to apply an operation +./doc/adr/2018-10-30-storage-metadata-fields-and-optional.md:15:8 - Unknown word (chrono) -- std::chrono::system_clock::time +./doc/adr/2019-01-04-error-reporting-with-statusor.md:13:43 - Unknown word (badbit) -- report errors (e.g., [badbit][badbit-link] in the +./doc/adr/2019-03-26-binary-distributions.md:10:75 - Unknown word (dpkg) -- might want to use (e.g., dpkg, +./doc/adr/2019-03-26-binary-distributions.md:11:6 - Unknown word (vcpkg) -- rpm, vcpkg). +./doc/adr/2019-03-26-binary-distributions.md:16:64 - Unknown word (packageable) -- make our code easily packageable by +./doc/contributor/README.md:61:50 - Unknown word (distro) -- version included in that distro: search on pkgs.org +./doc/contributor/README.md:61:68 - Unknown word (pkgs) -- that distro: search on pkgs.org, +./doc/contributor/README.md:62:1 - Unknown word (repology) -- repology.org, or Google; or just +./doc/contributor/README.md:91:8 - Unknown word (SUBDIR) -- $ DOCS_SUBDIR=my-fancy-feature ./ci +./doc/contributor/howto-guide-forks-and-pull-requests.md:89:14 - Unknown word (Googler) -- If you are a Googler, when you submit your +./doc/contributor/howto-guide-forks-and-pull-requests.md:97:40 - Unknown word (howto) -- completely separate [guide](howto-guide-running-ci-builds +./doc/contributor/howto-guide-setup-cmake-environment.md:47:16 - Unknown word (Bcmake) -- cmake -Hsuper -Bcmake-out/si \ +./doc/contributor/howto-guide-setup-cmake-environment.md:47:8 - Unknown word (Hsuper) -- cmake -Hsuper -Bcmake-out/si \ +./doc/contributor/howto-guide-setup-cmake-environment.md:64:15 - Unknown word (DCMAKE) -- builds with `-DCMAKE_PREFIX_PATH=$HOME/local +./doc/contributor/howto-guide-setup-cmake-environment.md:85:23 - Unknown word (ctest) -- env -C cmake-out/home ctest --output-on-failure +./doc/contributor/howto-guide-setup-development-workstation.md:106:14 - Unknown word (setuptools) -- pip3 install setuptools wheel +./doc/contributor/howto-guide-setup-development-workstation.md:108:27 - Unknown word (httpbin) -- install flask==1.1.2 httpbin==0.7.0 scalpl==0.4. +./doc/contributor/howto-guide-setup-development-workstation.md:108:42 - Unknown word (scalpl) -- .1.2 httpbin==0.7.0 scalpl==0.4.0 \ +./doc/contributor/howto-guide-setup-development-workstation.md:109:17 - Unknown word (gunicorn) -- crc32c==2.1 gunicorn==20.0.4 +./doc/contributor/howto-guide-setup-development-workstation.md:158:47 - Unknown word (prepend) -- to avoid needing to prepend `sudo` to Docker +./doc/contributor/howto-guide-setup-development-workstation.md:162:6 - Unknown word (usermod) -- sudo usermod -aG docker $USER +./doc/contributor/howto-guide-setup-development-workstation.md:174:111 - Unknown word (ALLUSERSPROFILE) -- & SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" +./doc/contributor/howto-guide-setup-development-workstation.md:179:45 - Unknown word (activeperl) -- cmake git cmake.portable activeperl ninja golang yasm putty +./doc/contributor/howto-guide-setup-development-workstation.md:179:69 - Unknown word (yasm) -- activeperl ninja golang yasm putty msys2 bazel +./doc/contributor/howto-guide-setup-development-workstation.md:179:80 - Unknown word (msys) -- ninja golang yasm putty msys2 bazel +./doc/contributor/howto-guide-setup-development-workstation.md:180:72 - Unknown word (nativedesktop) -- visualstudio2019-workload-nativedesktop microsoft-build-tools +./doc/contributor/howto-guide-setup-development-workstation.md:189:49 - Unknown word (puttygen) -- public key pair with `puttygen`: +./doc/contributor/howto-guide-setup-development-workstation.md:357:31 - Unknown word (devbox) -- e.g. VM=my-windows-devbox +./doc/contributor/howto-guide-setup-development-workstation.md:363:30 - Unknown word (drawfork) -- Googlers should consult go/drawfork before selecting an +./doc/contributor/howto-guide-setup-development-workstation.md:52:34 - Unknown word (libbenchmark) -- ares-dev libc-ares2 libbenchmark-dev libcurl4-openssl +./doc/contributor/howto-guide-setup-development-workstation.md:52:9 - Unknown word (libc) -- libc-ares-dev libc-ares2 +./doc/contributor/howto-guide-setup-development-workstation.md:65:9 - Unknown word (buildifier) -- Install buildifier tool, which we use to +./doc/contributor/howto-guide-setup-development-workstation.md:72:9 - Unknown word (shfmt) -- Install shfmt tool, which we use to +./doc/cpp-style-guide.md:58:11 - Unknown word (grpcpp) -- #include +./doc/cpp-style-guide.md:58:18 - Unknown word (blorg) -- #include +./doc/cpp-style-guide.md:62:11 - Unknown word (unistd) -- #include +./doc/landing/index.html:150:22 - Unknown word (hljs) --
+./doc/packaging.md:963:49 - Unknown word (libgrpc) -- recommends install -y libgrpc++-dev libprotobuf-dev +./doc/packaging.md:963:63 - Unknown word (libprotobuf) -- install -y libgrpc++-dev libprotobuf-dev \ +./doc/packaging.md:964:5 - Unknown word (libprotoc) -- libprotoc-dev libc-ares-dev protobuf +./external/googleapis/CMakeLists.txt:151:15 - Unknown word (Werror) -- include(EnableWerror) +./external/googleapis/CMakeLists.txt:196:16 - Unknown word (Protos) -- include(CompileProtos) +./external/googleapis/CMakeLists.txt:240:49 - Unknown word (SOVERSION) -- ${PROJECT_VERSION}" SOVERSION +./external/googleapis/CMakeLists.txt:30:25 - Unknown word (PROTO) -- EXTERNAL_GOOGLEAPIS_PROTO_FILES +./external/googleapis/CMakeLists.txt:652:41 - Unknown word (BINDIR) -- DESTINATION ${CMAKE_INSTALL_BINDIR} +./external/googleapis/CMakeLists.txt:654:41 - Unknown word (LIBDIR) -- DESTINATION ${CMAKE_INSTALL_LIBDIR} +./external/googleapis/CMakeLists.txt:656:13 - Unknown word (NAMELINK) -- NAMELINK_SKIP +./external/googleapis/CMakeLists.txt:680:45 - Unknown word (Proto) -- APIS C++ ${_short_name} Proto Library") +./external/googleapis/CMakeLists.txt:702:11 - Unknown word (libcares) -- " libcares") +./external/googleapis/CMakeLists.txt:703:12 - Unknown word (CONCAT) -- string(CONCAT GOOGLE_CLOUD_CPP_PC +./external/googleapis/CMakeLists.txt:72:19 - Unknown word (dialogflow) -- "google/cloud/dialogflow/v2beta1/agent.proto +./external/googleapis/CMakeLists.txt:783:38 - Unknown word (Findg) -- PROJECT_SOURCE_DIR}/cmake/FindgRPC.cmake" +./external/googleapis/config-version.cmake.in:15:22 - Unknown word (DOXYGEN) -- set(PACKAGE_VERSION @DOXYGEN_PROJECT_NUMBER@) +./external/googleapis/config.pc.in:17:1 - Unknown word (libdir) -- libdir=${prefix}/@CMAKE_INSTALL +./external/googleapis/config.pc.in:18:1 - Unknown word (includedir) -- includedir=${prefix}/@CMAKE_INSTALL +./external/googleapis/config.pc.in:18:37 - Unknown word (INCLUDEDIR) -- prefix}/@CMAKE_INSTALL_INCLUDEDIR@ +./external/googleapis/config.pc.in:26:1 - Unknown word (Cflags) -- Cflags: -I${includedir} +./generator/CMakeLists.txt:127:14 - Unknown word (fname) -- foreach (fname ${google_cloud_cpp_generator +./generator/CMakeLists.txt:143:62 - Unknown word (bigobj) -- .obj file. Add the /bigobj option to +./generator/CMakeLists.txt:155:26 - Unknown word (everytime) -- build all the tests everytime they create a new package +./generator/CMakeLists.txt:31:14 - Unknown word (codegen) -- internal/codegen_utils.cc +./generator/CMakeLists.txt:83:9 - Unknown word (protoc) -- # Build protoc plugin executable +./generator/CMakeLists.txt:93:18 - Unknown word (gmock) -- # the GTest::gmock target, and the target +./generator/google_cloud_cpp_generator_testing.bzl:19:36 - Unknown word (hdrs) -- cpp_generator_testing_hdrs = [ +./generator/integration_tests/backup.proto:30:19 - Unknown word (classname) -- option java_outer_classname = "BackupProto"; +./generator/integration_tests/test.proto:1036:38 - Unknown word (appengine) -- googleapis.com/google.appengine.logging.v1.RequestLog +./generator/integration_tests/test.proto:1044:21 - Unknown word (Struct) -- google.protobuf.Struct json_payload = 6; +./generator/integration_tests/test.proto:29:25 - Unknown word (struct) -- import "google/protobuf/struct.proto"; +./generator/integration_tests/test.proto:321:3 - Unknown word (oneof) -- oneof source_info { +./generator/integration_tests/test.proto:423:38 - Unknown word (backticks) -- must be enclosed in backticks (`` ` ``). +./generator/integration_tests/test.proto:454:4 - Unknown word (Enqueues) -- // Enqueues the given DDL statements +./generator/integration_tests/test.proto:742:39 - Unknown word (goldenkitchensink) -- api.default_host) = "goldenkitchensink.googleapis.com"; +./generator/integration_tests/test.proto:813:52 - Unknown word (UNIQUEID) -- iceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID}`. The `-` wildcard +./google/cloud/CMakeLists.txt:133:22 - Unknown word (msvc) -- internal/disable_msvc_crt_secure_warnings +./google/cloud/CMakeLists.txt:144:14 - Unknown word (getenv) -- internal/getenv.cc +./google/cloud/CMakeLists.txt:159:14 - Unknown word (strerror) -- internal/strerror.cc +./google/cloud/bigquery/CMakeLists.txt:152:38 - Unknown word (lgoogle) -- GOOGLE_CLOUD_PC_LIBS "-lgoogle_cloud_cpp_bigquery" +./google/cloud/bigquery/CMakeLists.txt:83:42 - Unknown word (servicename) -- SOURCE_DIR}/mocks/mock_servicename_v2_connection.gcpcxx +./google/cloud/bigquery/quickstart/CMakeLists.txt:27:5 - Unknown word (VCPKG) -- if (VCPKG_TARGET_TRIPLET MATCHES +./google/cloud/bigquery/quickstart/Makefile:18:25 - Unknown word (CXXLD) -- The CXX, CXXFLAGS and CXXLD variables are hard-coded +./google/cloud/bigquery/quickstart/Makefile:28:10 - Unknown word (DEPS) -- BIGQUERY_DEPS := google_cloud_cpp +./google/cloud/bigquery/quickstart/README.md:105:13 - Unknown word (gooogle) -- cd $HOME/gooogle-cloud-cpp/google/cloud +./google/cloud/bigquery/quickstart/README.md:106:31 - Unknown word (TOOLCHAIN) -- H. -B.build -DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts +./google/cloud/bigquery/quickstart/README.md:106:66 - Unknown word (buildsystems) -- $HOME/vcpkg/scripts/buildsystems/vcpkg.cmake +./google/cloud/bigquery/quickstart/README.md:130:71 - Unknown word (bazelrc) -- include it in your `.bazelrc` +./google/cloud/bigquery/quickstart/README.md:134:21 - Unknown word (DGRPC) -- bazel build --copt=-DGRPC_BAZEL_BUILD ... +./google/cloud/bigquery/quickstart/README.md:156:39 - Unknown word (Downloadfile) -- System.Net.WebClient).Downloadfile( ^ +./google/cloud/bigquery/quickstart/README.md:27:21 - Unknown word (quickstarts) -- The [Cloud BigQuery quickstarts][bigquery-quickstart +./google/cloud/bigquery/quickstart/README.md:44:25 - Unknown word (setenv) -- csh/tsch | `setenv GOOGLE_APPLICATION_CREDENTIAL +./google/cloud/bigquery/quickstart/README.md:44:7 - Unknown word (tsch) -- | csh/tsch | `setenv +./google/cloud/bigquery/quickstart/README.md:5:68 - Unknown word (toolchain) -- you have a working C++ toolchain +./google/cloud/bigtable/CMakeLists.txt:111:14 - Unknown word (readrowsparser) -- internal/readrowsparser.cc +./google/cloud/bigtable/CMakeLists.txt:113:14 - Unknown word (rowreaderiterator) -- internal/rowreaderiterator.cc +./google/cloud/bigtable/CMakeLists.txt:323:18 - Unknown word (DBIGTABLE) -- PRIVATE -DBIGTABLE_CLIENT_FORCE_STATIC +./google/cloud/bigtable/CMakeLists.txt:41:42 - Unknown word (particulary) -- location of proto files, particulary the googleapis protos +./google/cloud/bigtable/README.md:44:35 - Unknown word (substr) -- << "Usage: " << cmd.substr(last_slash + 1) +./google/cloud/bigtable/bigtable_client_unit_tests.bzl:71:12 - Unknown word (readmodifywriterow) -- "table_readmodifywriterow_test.cc", +./google/cloud/bigtable/bigtable_client_unit_tests.bzl:72:12 - Unknown word (readrow) -- "table_readrow_test.cc", +./google/cloud/bigtable/bigtable_client_unit_tests.bzl:73:12 - Unknown word (readrows) -- "table_readrows_test.cc", +./google/cloud/bigtable/doc/bigtable-main.dox:17:4 - Unknown word (Quickstart) -- ## Quickstart +./google/cloud/bigtable/doc/bigtable-main.dox:2:2 - Unknown word (mainpage) -- @mainpage Google Cloud Platform +./google/cloud/bigtable/doc/bigtable-main.dox:46:2 - Unknown word (endcode) -- @endcode +./google/cloud/bigtable/doc/bigtable-main.dox:8:11 - Unknown word (Gmail) -- Maps, and Gmail. +./google/cloud/bigtable/doc/bigtable-main.dox:96:86 - Unknown word (Quickstarts) -- quickstarts 'Cloud Bigtable Quickstarts' +./google/cloud/bigtable/doc/bigtable-samples-data-client.dox:32:28 - Unknown word (increament) -- Use ReadModifyWrite to increament a value and append a +./google/cloud/bigtable/doc/bigtable-samples-data-client.dox:4:50 - Unknown word (opertions) -- reading and writing opertions on bigtable data client +./google/cloud/bigtable/doc/bigtable-samples-grpc-credentials.dox:39:33 - Unknown word (googleusercontent) -- client_id": "XXXXXX.apps.googleusercontent.com", +./google/cloud/bigtable/doc/bigtable-samples-grpc-credentials.dox:54:71 - Unknown word (endl) -- < ex.what() << std::endl; +./google/cloud/bigtable/doc/bigtable-samples-grpc-credentials.dox:54:8 - Unknown word (cerr) -- std::cerr << "Standard C++ exception +./google/cloud/bigtable/doc/environment-variables.dox:13:73 - Unknown word (endlink) -- lientOptions `ClientOptions` @endlink +./google/cloud/bigtable/internal/readrowsparser_acceptance_tests.inc:1:4 - Unknown word (AUTOGENERATED) -- // AUTOGENERATED BY tools/convert_acceptance +./google/cloud/bigtable/internal/readrowsparser_acceptance_tests.inc:227:20 - Unknown word (unsplit) -- // Test name: "two unsplit cells" +./google/cloud/bigtable/internal/readrowsparser_acceptance_tests.inc:228:27 - Unknown word (Unsplit) -- F(AcceptanceTest, TwoUnsplitCells) { +./google/cloud/bigtable/internal/readrowsparser_acceptance_tests.inc:409:19 - Unknown word (alue) -- value: "alue-VAL" +./google/cloud/bigtable/internal/readrowsparser_acceptance_tests.inc:571:24 - Unknown word (Multiqualifier) -- TEST_F(AcceptanceTest, MultiqualifierSplits) { +./google/cloud/bigtable/internal/readrowsparser_acceptance_tests.inc:623:38 - Unknown word (Multisplit) -- AcceptanceTest, MultiqualifierMultisplit) { +./google/cloud/bigtable/internal/rpc_policy_parameters.inc:23:26 - Unknown word (BIGTABLEINSTANCEADMIN) -- ifndef GOOGLE_CLOUD_CPP_BIGTABLEINSTANCEADMIN_DEFAULT_INITIAL_DELAY +./google/cloud/bigtable/internal/rpc_policy_parameters.inc:49:26 - Unknown word (BIGTABLETABLEADMIN) -- ifndef GOOGLE_CLOUD_CPP_BIGTABLETABLEADMIN_DEFAULT_INITIAL_DELAY +./google/cloud/bigtable/tools/convert_acceptance_tests.py:60:48 - Unknown word (isalpha) -- c in test_name if c.isalpha() or c == " "]).split +./google/cloud/bigtable/tools/generate_rpc_policy_parameters.py:105:9 - Unknown word (myfile) -- myfile = f.read() +./google/cloud/bigtable/tools/generate_rpc_policy_parameters.py:107:13 - Unknown word (intf) -- for intf in t["interfaces"]: +./google/cloud/bigtable/tools/generate_rpc_policy_parameters.py:15:82 - Unknown word (GAPIC) -- parameters from the GAPIC YAML config files. +./google/cloud/bigtable/tools/generate_rpc_policy_parameters.py:19:56 - Unknown word (gapic) -- defined in bigtableadmin_gapic.yaml +./google/cloud/bigtable/tools/generate_rpc_policy_parameters.py:62:62 - Unknown word (rsplit) -- interface["name"].upper().rsplit(".", 1)[1] +./google/cloud/firestore/CMakeLists.txt:89:27 - Unknown word (submodules) -- needs to know where the submodules will be installed from +./google/cloud/firestore/firestore_client.pc:24:20 - Unknown word (lfirestore) -- Libs: -L${libdir} -lfirestore_client +./google/cloud/internal/README.md:1:30 - Unknown word (gogle) -- Implementation Details for gogle/cloud/*.{h,cc} +./google/cloud/internal/build_info.cc.in:18:11 - Unknown word (cctype) -- #include +./google/cloud/internal/build_info.cc.in:25:4 - Unknown word (NOLINTNEXTLINE) -- // NOLINTNEXTLINE(readability-identifier +./google/cloud/internal/diagnostics_pop.inc:17:2 - Unknown word (elif) -- #elif __clang__ +./google/cloud/internal/diagnostics_pop.inc:19:9 - Unknown word (GNUC) -- #elif __GNUC__ +./google/cloud/internal/disable_deprecation_warnings.inc:19:36 - Unknown word (Wdeprecated) -- diagnostic ignored "-Wdeprecated-declarations" +./google/cloud/pubsub/README.md:39:11 - Unknown word (iostream) -- #include +./google/cloud/pubsub/README.md:40:11 - Unknown word (stdexcept) -- #include +./google/cloud/pubsub/benchmarks/README.md:19:9 - Unknown word (acked) -- is, not acked by Cloud Pub/Sub) goes +./google/cloud/pubsub/doc/publisher-mock.dox:3:76 - Unknown word (googlemock) -- publisher application with googlemock +./google/cloud/pubsub/doc/pubsub-main.dox:43:2 - Unknown word (parblock) -- @parblock +./google/cloud/pubsub/doc/pubsub-main.dox:49:2 - Unknown word (endparblock) -- @endparblock +./google/cloud/spanner/benchmarks/README.md:119:9 - Unknown word (ggplot) -- require(ggplot2) # may require install +./google/cloud/spanner/benchmarks/README.md:125:11 - Unknown word (rbind) -- df <- rbind(df, t); +./google/cloud/spanner/benchmarks/README.md:132:71 - Unknown word (boxplot) -- y=CpuTime)) + geom_boxplot() +./google/cloud/spanner/benchmarks/README.md:133:1 - Unknown word (ggsave) -- ggsave('read-data-types.png +./google/cloud/spanner/benchmarks/README.md:155:29 - Unknown word (srtp) -- experiment=read | tee srtp-read.csv +./google/cloud/spanner/benchmarks/README.md:93:49 - Unknown word (mrcb) -- experiment=read-string | tee mrcb-read-string.csv +./google/cloud/spanner/benchmarks/single_row_throughput_plots.py:20:8 - Unknown word (numpy) -- import numpy as np +./google/cloud/spanner/doc/spanner-main.dox:132:12 - Unknown word (Backoff) -- ### Retry, Backoff, and Idempotency Policies +./google/cloud/spanner/doc/spanner-main.dox:132:25 - Unknown word (Idempotency) -- Retry, Backoff, and Idempotency Policies. +./google/cloud/spanner/samples/README.md:21:16 - Unknown word (bazelbuild) -- to workaround [bazelbuild/bazel#10621](https: +./google/cloud/storage/CMakeLists.txt:151:21 - Unknown word (streambuf) -- internal/object_streambuf.cc +./google/cloud/storage/CMakeLists.txt:425:40 - Unknown word (sigpipe) -- curl_wrappers_disable_sigpipe_handler_test.cc +./google/cloud/storage/CMakeLists.txt:600:72 - Unknown word (lcrc) -- cloud_cpp_storage" " -lcrc32c" +./google/cloud/storage/CMakeLists.txt:69:5 - Unknown word (hmac) -- hmac_key_metadata.cc +./google/cloud/storage/README.md:82:29 - Unknown word (istreambuf) -- string contents{std::istreambuf_iterator{reader +./google/cloud/storage/benchmarks/README.md:10:61 - Unknown word (TTFB) -- time to first byte (TTFB) is high, so +./google/cloud/storage/benchmarks/README.md:119:53 - Unknown word (venv) -- and assume that the `venv` module is +./google/cloud/storage/benchmarks/README.md:127:14 - Unknown word (vebm) -- We will use `vebm` (for Virtual Environment +./google/cloud/storage/benchmarks/README.md:143:13 - Unknown word (plotnine) -- pip install plotnine pandas +./google/cloud/storage/benchmarks/README.md:46:17 - Unknown word (ttfb) -- tee tp-vs-cpu.ttfb.txt +./google/cloud/storage/benchmarks/storage_throughput_vs_cpu_plots.py:36:12 - Unknown word (Nanos) -- df["CpuNanosPerByte"] = (df.CpuTimeUs +./google/cloud/storage/benchmarks/storage_throughput_vs_cpu_plots.py:69:14 - Unknown word (groupby) -- print(subset.groupby(["Op", "ApiName"])[ +./google/cloud/storage/doc/parallel-uploads-design.md:178:30 - Unknown word (Streambuf) -- `ParallelObjectWriteStreambuf` for every shard +./google/cloud/storage/doc/parallel-uploads-design.md:180:23 - Unknown word (Streambufs) -- `ParallelObjectWriteStreambufs` +./google/cloud/storage/doc/parallel-uploads-design.md:221:68 - Unknown word (intiating) -- has two versions - intiating the +./google/cloud/storage/doc/parallel-uploads-design.md:272:38 - Unknown word (upload's) -- object's metadata as the upload's result. +./google/cloud/storage/doc/parallel-uploads-design.md:83:58 - Unknown word (prepended) -- prefix, which will be prepended to all +./google/cloud/storage/doc/setup-test-resources.md:100:12 - Unknown word (keyrings) -- gcloud kms keyrings create ${KR} --location +./google/cloud/storage/doc/setup-test-resources.md:108:1 - Unknown word (KEYNAME) -- KEYNAME=projects/${PROJECT_NAME +./google/cloud/storage/doc/setup-test-resources.md:118:37 - Unknown word (HMAC) -- Service Account for HMAC Keys +./google/cloud/storage/doc/setup-test-resources.md:99:1 - Unknown word (KEYID) -- KEYID=... # e.g cloud-cpp +./google/cloud/storage/doc/storage-main.dox:101:34 - Unknown word (ostream) -- types derived from `std::ostream` where the application +./google/cloud/storage/doc/storage-main.dox:61:18 - Unknown word (TESTBENCH) -- - `CLOUD_STORAGE_TESTBENCH_ENDPOINT=...` **DEPRECATED +./google/cloud/storage/doc/storage-mocking.dox:15:57 - Unknown word (readobject) -- samples.cc mock successful readobject +./google/cloud/storage/doc/storage-mocking.dox:29:57 - Unknown word (writeobject) -- samples.cc mock successful writeobject +./google/cloud/storage/doc/storage-mocking.dox:7:91 - Unknown word (ueeful) -- framework, this is specially ueeful +./google/cloud/storage/emulator/README.md:24:76 - Unknown word (logfile) -- threads 10 --access-logfile - --chdir ./google/cloud +./google/cloud/storage/emulator/README.md:24:88 - Unknown word (chdir) -- -access-logfile - --chdir ./google/cloud/storage +./google/cloud/storage/emulator/README.md:32:50 - Unknown word (enviroment) -- please set the following enviroment variable +./google/cloud/storage/emulator/README.md:42:13 - Unknown word (testbench) -- The `x-goog-testbench-instructions` header +./google/cloud/storage/emulator/database.py:146:14 - Unknown word (onlys) -- rest_onlys = [] +./google/cloud/storage/emulator/database.py:36:9 - Unknown word (raii) -- def raii(self, grpc_server): +./google/cloud/storage/emulator/emulator.py:24:6 - Unknown word (werkzeug) -- from werkzeug import serving +./google/cloud/storage/emulator/emulator.py:63:5 - Unknown word (etype) -- etype = flask.request.args +./google/cloud/storage/emulator/gcs/project.py:104:24 - Unknown word (Hmac) -- "ETag for `HmacKeys: update` in %s" +./google/cloud/storage/emulator/gcs/project.py:123:18 - Unknown word (Resotoring) -- "Resotoring DELETE key in `HmacKeys +./google/cloud/storage/emulator/gcs/project.py:44:29 - Unknown word (abcdefghijklmnopqrstuvwxyz) -- [random.choice("abcdefghijklmnopqrstuvwxyz0123456789") for _ in +./google/cloud/storage/emulator/gcs/project.py:46:20 - Unknown word (gmtime) -- now = time.gmtime(time.time()) +./google/cloud/storage/emulator/grpc_server.py:169:42 - Unknown word (Oneof) -- message = request.WhichOneof("first_message") +./google/cloud/storage/emulator/tests/test_gcs.py:388:64 - Unknown word (Bucket'ones) -- patch` are similar to Bucket'ones, we only +./google/cloud/storage/emulator/tests/test_utils.py:276:18 - Unknown word (noacl) -- response_noacl = utils.common.filter +./google/cloud/storage/emulator/utils/acl.py:77:21 - Unknown word (invaild) -- utils.error.invaild("Team %s for project +./google/cloud/storage/emulator/utils/common.py:139:76 - Unknown word (Scalpl) -- keys that works with `Scalpl` library. +./google/cloud/storage/emulator/utils/common.py:178:13 - Unknown word (childrens) -- childrens_fields = [] +./google/cloud/storage/emulator/utils/common.py:206:9 - Unknown word (simplfied) -- simplfied_key = remove_index(key +./google/cloud/storage/emulator/utils/common.py:300:6 - Unknown word (rtype) -- :rtype: str +./google/cloud/storage/emulator/utils/error.py:32:42 - Unknown word (jsonify) -- make_response(flask.jsonify(self.msg), self.code +./google/cloud/storage/tests/conformance_tests.proto:116:38 - Unknown word (prepending) -- expectedDecodedPolicy before prepending the PolicyInput.fields +./google/cloud/storage/tests/conformance_tests.proto:82:24 - Unknown word (lexigraphical) -- E.1: Order them in lexigraphical order so it's the +./google/cloud/storage/tools/make_jwt_assertion_for_test_data.py:30:3 - Unknown word (pylint) -- # pylint: disable=line-too-long +./google/cloud/storage/tools/make_jwt_assertion_for_test_data.py:63:8 - Unknown word (strs) -- kv_strs = [] +./google/cloud/storage/tools/make_jwt_assertion_for_test_data.py:73:43 - Unknown word (ints) -- only map to strings and ints, so we can take this +./google/cloud/testing_util/CMakeLists.txt:53:29 - Unknown word (getrusage) -- check_cxx_symbol_exists(getrusage sys/resource.h +./google/cloud/testing_util/CMakeLists.txt:54:51 - Unknown word (GETRUSAGE) -- GOOGLE_CLOUD_CPP_HAVE_GETRUSAGE) +./google/cloud/testing_util/CMakeLists.txt:55:29 - Unknown word (RUSAGE) -- check_cxx_symbol_exists(RUSAGE_THREAD sys/resource +./release/README.md:102:1 - Unknown word (repos) -- repos -- and verify that the +./release/README.md:127:61 - Unknown word (refdocs) -- google-cloud-cpp/publish-refdocs` in the +./release/README.md:127:8 - Unknown word (devrel) -- `cloud-devrel/client-libraries/cpp +./release/README.md:129:20 - Unknown word (Committish) -- `v0.11.x`) in the `Committish` field. This job will +./release/README.md:191:11 - Unknown word (CHANELOG) -- * Update `CHANELOG.md` to reflect the changes +./super/CMakeLists.txt:49:1 - Unknown word (processorcount) -- processorcount(NCPU) +./super/CMakeLists.txt:78:32 - Unknown word (RPATH) -- -DCMAKE_INSTALL_RPATH=${GOOGLE_CLOUD_CPP_INSTALL +./super/CMakeLists.txt:82:17 - Unknown word (CTEST) -- ${CMAKE_CTEST_COMMAND} diff --git a/packages/cspell/src/__snapshots__/app.test.ts.snap b/packages/cspell/src/__snapshots__/app.test.ts.snap index ba082f1e6730..38bdf346be38 100644 --- a/packages/cspell/src/__snapshots__/app.test.ts.snap +++ b/packages/cspell/src/__snapshots__/app.test.ts.snap @@ -2,8 +2,18 @@ exports[`Validate cli app LICENSE Expect Error: undefined 1`] = `Array []`; +exports[`Validate cli app LICENSE Expect Error: undefined 2`] = ` +"error 1/1 ./LICENSE 0.00ms +error CSpell: Files checked: 1, Issues found: 0 in 0 files" +`; + exports[`Validate cli app bad config Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app bad config Expect Error: [Function CheckFailed] 2`] = ` +"error Configuration Error: Failed to find config file at: \\"./src/app.test.ts\\" +error CSpell: Files checked: 0, Issues found: 0 in 0 files" +`; + exports[`Validate cli app check LICENSE Expect Error: undefined 1`] = ` Array [ "MIT License", @@ -31,6 +41,13 @@ Array [ ] `; +exports[`Validate cli app check LICENSE Expect Error: undefined 2`] = ` +"log Check file: ./LICENSE +log +log +log " +`; + exports[`Validate cli app check help Expect Error: outputHelp 1`] = ` Array [ "Usage: cspell check [options] ", @@ -47,8 +64,16 @@ Array [ ] `; +exports[`Validate cli app check help Expect Error: outputHelp 2`] = `""`; + exports[`Validate cli app check missing Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app check missing Expect Error: [Function CheckFailed] 2`] = ` +"log Check file: ./missing-file.txt +log +error File not found \\"./missing-file.txt\\"" +`; + exports[`Validate cli app check with spelling errors Expect Error: [Function CheckFailed] 1`] = ` Array [ " [NEDERLANDS]", @@ -148,16 +173,77 @@ Array [ ] `; +exports[`Validate cli app check with spelling errors Expect Error: [Function CheckFailed] 2`] = ` +"log Check file: ./samples/Dutch.txt +log +log +log " +`; + exports[`Validate cli app cspell-bad.json Expect Error: undefined 1`] = `Array []`; +exports[`Validate cli app cspell-bad.json Expect Error: undefined 2`] = ` +"error 1/1 ./src/app.test.ts 0.00ms +error CSpell: Files checked: 1, Issues found: 0 in 0 files" +`; + exports[`Validate cli app cspell-import-missing.json Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app cspell-import-missing.json Expect Error: [Function CheckFailed] 2`] = ` +"error Configuration Error: Failed to read config file: \\"./samples/intentionally-missing-file.json\\" +error CSpell: Files checked: 0, Issues found: 0 in 0 files" +`; + exports[`Validate cli app current_file --verbose Expect Error: undefined 1`] = `Array []`; +exports[`Validate cli app current_file --verbose Expect Error: undefined 2`] = ` +"info +info cspell; +info Date: Sat, 03 Apr 2021 11:25:33 GMT +info Options: +info verbose: Yes +info config: default +info exclude: node_modules/** +info files: src/app.test.ts +info wordsOnly: No +info unique: No +info +info Config Files Found: +info ./cspell.json +info +info Exclusion Globs: +info Glob: node_modules from ./cspell.json +info Glob: **/*.d.ts from ./cspell.json +info Glob: coverage/** from ./cspell.json +info Glob: dist/** from ./cspell.json +info Glob: package.json from ./cspell.json +info Glob: **/package.json from ./cspell.json +info Glob: **/.cspell.json from ./cspell.json +info Glob: .vscode/** from ./cspell.json +info Glob: node_modules/** from command line +info +info Checking: ./src/app.test.ts, File type: auto, Language: default +info Checked: ./src/app.test.ts, File type: typescript, Language: en ... Issues: 0 0.00S +info Config file Used: ./cspell.json +info Dictionaries Used: workspace, aws, companies, cryptocurrencies, en_us, filetypes, softwareTerms, typescript, node, npm +error 1/1 ./src/app.test.ts 0.00ms +error CSpell: Files checked: 1, Issues found: 0 in 0 files" +`; + exports[`Validate cli app current_file Expect Error: undefined 1`] = `Array []`; +exports[`Validate cli app current_file Expect Error: undefined 2`] = ` +"error 1/1 ./src/app.test.ts 0.00ms +error CSpell: Files checked: 1, Issues found: 0 in 0 files" +`; + exports[`Validate cli app current_file languageId Expect Error: undefined 1`] = `Array []`; +exports[`Validate cli app current_file languageId Expect Error: undefined 2`] = ` +"error 1/1 ./src/app.test.ts 0.00ms +error CSpell: Files checked: 1, Issues found: 0 in 0 files" +`; + exports[`Validate cli app link 1`] = `Array []`; exports[`Validate cli app link add 1`] = `Array []`; @@ -170,8 +256,12 @@ exports[`Validate cli app link remove 1`] = `Array []`; exports[`Validate cli app must find force no error Expect Error: undefined 1`] = `Array []`; +exports[`Validate cli app must find force no error Expect Error: undefined 2`] = `"error CSpell: Files checked: 0, Issues found: 0 in 0 files"`; + exports[`Validate cli app must find with error Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app must find with error Expect Error: [Function CheckFailed] 2`] = `"error CSpell: Files checked: 0, Issues found: 0 in 0 files"`; + exports[`Validate cli app no-args Expect Error: outputHelp 1`] = ` Array [ "Usage: cspell lint [options] [files...]", @@ -225,10 +315,208 @@ Array [ ] `; +exports[`Validate cli app no-args Expect Error: outputHelp 2`] = `""`; + exports[`Validate cli app not found error by default Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app not found error by default Expect Error: [Function CheckFailed] 2`] = `"error CSpell: Files checked: 0, Issues found: 0 in 0 files"`; + exports[`Validate cli app samples/Dutch.txt Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app samples/Dutch.txt Expect Error: [Function CheckFailed] 2`] = ` +"error 1/1 ./samples/Dutch.txt 0.00ms X +log ./samples/Dutch.txt:1:32 - Unknown word (NEDERLANDS) +log ./samples/Dutch.txt:2:11 - Unknown word (wordt) +log ./samples/Dutch.txt:2:17 - Unknown word (vriendelijk) +log ./samples/Dutch.txt:2:29 - Unknown word (verzocht) +log ./samples/Dutch.txt:2:45 - Unknown word (bestand) +log ./samples/Dutch.txt:3:10 - Unknown word (lezen) +log ./samples/Dutch.txt:3:26 - Unknown word (leveren) +log ./samples/Dutch.txt:3:38 - Unknown word (iedere) +log ./samples/Dutch.txt:3:45 - Unknown word (kopie) +log ./samples/Dutch.txt:3:59 - Unknown word (taalhulpbestand) +log ./samples/Dutch.txt:5:4 - Unknown word (Naam) +log ./samples/Dutch.txt:5:10 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:5:27 - Unknown word (woordenlijst) +log ./samples/Dutch.txt:5:40 - Unknown word (voor) +log ./samples/Dutch.txt:5:45 - Unknown word (spellingcontrole) +log ./samples/Dutch.txt:6:4 - Unknown word (Versie) +log ./samples/Dutch.txt:6:11 - Unknown word (woordenlijst) +log ./samples/Dutch.txt:6:32 - Unknown word (versie) +log ./samples/Dutch.txt:6:39 - Unknown word (spellingcontrole) +log ./samples/Dutch.txt:7:4 - Unknown word (Vereisten) +log ./samples/Dutch.txt:7:33 - Unknown word (hoger) +log ./samples/Dutch.txt:8:4 - Unknown word (Keurmerk) +log ./samples/Dutch.txt:8:22 - Unknown word (Nederlandse) +log ./samples/Dutch.txt:8:34 - Unknown word (Taalunie) +log ./samples/Dutch.txt:8:47 - Unknown word (lijst) +log ./samples/Dutch.txt:8:57 - Unknown word (basiswoorden) +log ./samples/Dutch.txt:9:13 - Unknown word (draagt) +log ./samples/Dutch.txt:9:24 - Unknown word (keurmerk) +log ./samples/Dutch.txt:9:40 - Unknown word (Nederlandse) +log ./samples/Dutch.txt:9:52 - Unknown word (Taalunie) +log ./samples/Dutch.txt:9:62 - Unknown word (Voor) +log ./samples/Dutch.txt:9:67 - Unknown word (meer) +log ./samples/Dutch.txt:10:4 - Unknown word (informatie) +log ./samples/Dutch.txt:11:4 - Unknown word (Auteursrechten) +log ./samples/Dutch.txt:11:60 - Unknown word (Brouwer) +log ./samples/Dutch.txt:12:11 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:12:32 - Unknown word (Gebruikersgroep) +log ./samples/Dutch.txt:13:4 - Unknown word (Licenties) +log ./samples/Dutch.txt:13:24 - Unknown word (heeft) +log ./samples/Dutch.txt:13:34 - Unknown word (doel) +log ./samples/Dutch.txt:13:42 - Unknown word (vrij) +log ./samples/Dutch.txt:13:47 - Unknown word (beschikbare) +log ./samples/Dutch.txt:13:59 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:14:4 - Unknown word (taalhulpbestanden) +log ./samples/Dutch.txt:14:25 - Unknown word (ontwikkelen) +log ./samples/Dutch.txt:14:43 - Unknown word (verspreiden) +log ./samples/Dutch.txt:14:70 - Unknown word (gebruik) +log ./samples/Dutch.txt:15:4 - Unknown word (mogelijk) +log ./samples/Dutch.txt:15:16 - Unknown word (maken) +log ./samples/Dutch.txt:15:22 - Unknown word (zijn) +log ./samples/Dutch.txt:15:30 - Unknown word (taalhulpbestanden) +log ./samples/Dutch.txt:15:55 - Unknown word (beschikbaar) +log ./samples/Dutch.txt:15:67 - Unknown word (onder) +log ./samples/Dutch.txt:16:4 - Unknown word (onderstaande) +log ./samples/Dutch.txt:16:18 - Unknown word (liberale) +log ./samples/Dutch.txt:16:27 - Unknown word (licenties) +log ./samples/Dutch.txt:16:37 - Unknown word (naar) +log ./samples/Dutch.txt:16:42 - Unknown word (keuze) +log ./samples/Dutch.txt:16:55 - Unknown word (gebruiker) +log ./samples/Dutch.txt:16:68 - Unknown word (wordt) +log ./samples/Dutch.txt:17:4 - Unknown word (zeerste) +log ./samples/Dutch.txt:17:12 - Unknown word (aangeraden) +log ./samples/Dutch.txt:17:26 - Unknown word (voorafgaand) +log ./samples/Dutch.txt:17:46 - Unknown word (gebruik) +log ./samples/Dutch.txt:17:54 - Unknown word (kennis) +log ./samples/Dutch.txt:17:64 - Unknown word (nemen) +log ./samples/Dutch.txt:18:4 - Unknown word (toepasselijke) +log ./samples/Dutch.txt:18:18 - Unknown word (licentie) +log ./samples/Dutch.txt:19:12 - Unknown word (herziene) +log ./samples/Dutch.txt:19:21 - Unknown word (versie) +log ./samples/Dutch.txt:20:6 - Unknown word (Volledige) +log ./samples/Dutch.txt:20:16 - Unknown word (licentie) +log ./samples/Dutch.txt:21:6 - Unknown word (Samenvatting) +log ./samples/Dutch.txt:22:25 - Unknown word (Naamsvermelding) +log ./samples/Dutch.txt:22:46 - Unknown word (unported) +log ./samples/Dutch.txt:23:6 - Unknown word (Volledige) +log ./samples/Dutch.txt:23:16 - Unknown word (licentie) +log ./samples/Dutch.txt:24:6 - Unknown word (Samenvatting) +log ./samples/Dutch.txt:25:4 - Unknown word (Steun) +log ./samples/Dutch.txt:25:36 - Unknown word (vrijwilligersproject) +log ./samples/Dutch.txt:25:57 - Unknown word (zonder) +log ./samples/Dutch.txt:25:64 - Unknown word (winstoogmerk) +log ./samples/Dutch.txt:26:13 - Unknown word (kleine) +log ./samples/Dutch.txt:26:21 - Unknown word (financiële) +log ./samples/Dutch.txt:26:32 - Unknown word (steun) +log ./samples/Dutch.txt:26:51 - Unknown word (meer) +log ./samples/Dutch.txt:26:56 - Unknown word (activiteiten) +log ./samples/Dutch.txt:26:69 - Unknown word (ontplooien) +log ./samples/Dutch.txt:27:19 - Unknown word (professionaliseren) +log ./samples/Dutch.txt:27:42 - Unknown word (donatie) +log ./samples/Dutch.txt:27:63 - Unknown word (welkom) +log ./samples/Dutch.txt:28:4 - Unknown word (rekeningnummer) +log ./samples/Dutch.txt:28:39 - Unknown word (Stichting) +log ./samples/Dutch.txt:28:62 - Unknown word (giften) +log ./samples/Dutch.txt:28:69 - Unknown word (zijn) +log ./samples/Dutch.txt:29:4 - Unknown word (aftrekbaar) +log ./samples/Dutch.txt:29:22 - Unknown word (belasting) +log ./samples/Dutch.txt:29:33 - Unknown word (Stichting) +log ./samples/Dutch.txt:29:55 - Unknown word (namelijk) +log ./samples/Dutch.txt:30:4 - Unknown word (Belastingdienst) +log ./samples/Dutch.txt:30:20 - Unknown word (erkend) +log ./samples/Dutch.txt:30:31 - Unknown word (ANBI) +log ./samples/Dutch.txt:30:37 - Unknown word (oftewel) +log ./samples/Dutch.txt:30:46 - Unknown word (Algemeen) +log ./samples/Dutch.txt:30:59 - Unknown word (Beogende) +log ./samples/Dutch.txt:30:68 - Unknown word (Instelling) +log ./samples/Dutch.txt:32:4 - Unknown word (Meedoen) +log ./samples/Dutch.txt:32:13 - Unknown word (Iedereen) +log ./samples/Dutch.txt:32:25 - Unknown word (welkom) +log ./samples/Dutch.txt:32:42 - Unknown word (doen) +log ./samples/Dutch.txt:32:53 - Unknown word (fouten) +log ./samples/Dutch.txt:32:61 - Unknown word (discussieer) +log ./samples/Dutch.txt:33:7 - Unknown word (mailinglijst) +log ./samples/Dutch.txt:33:23 - Unknown word (draai) +log ./samples/Dutch.txt:33:52 - Unknown word (dragen) +log ./samples/Dutch.txt:33:75 - Unknown word (stemt) +log ./samples/Dutch.txt:34:6 - Unknown word (ermee) +log ./samples/Dutch.txt:34:22 - Unknown word (bijdrage) +log ./samples/Dutch.txt:34:39 - Unknown word (desbetreffende) +log ./samples/Dutch.txt:34:54 - Unknown word (taalhulpbestand) +log ./samples/Dutch.txt:34:70 - Unknown word (beschikbaar) +log ./samples/Dutch.txt:35:4 - Unknown word (komt) +log ./samples/Dutch.txt:35:9 - Unknown word (onder) +log ./samples/Dutch.txt:35:15 - Unknown word (vrije) +log ./samples/Dutch.txt:35:27 - Unknown word (opensource) +log ./samples/Dutch.txt:35:38 - Unknown word (licenties) +log ./samples/Dutch.txt:35:49 - Unknown word (Indien) +log ./samples/Dutch.txt:35:62 - Unknown word (wenst) +log ./samples/Dutch.txt:36:4 - Unknown word (naam) +log ./samples/Dutch.txt:36:23 - Unknown word (genoemd) +log ./samples/Dutch.txt:36:31 - Unknown word (worden) +log ./samples/Dutch.txt:36:42 - Unknown word (ontvangen) +log ./samples/Dutch.txt:36:55 - Unknown word (schriftelijk) +log ./samples/Dutch.txt:36:68 - Unknown word (verzoek) +log ./samples/Dutch.txt:37:4 - Unknown word (daarvoor) +log ./samples/Dutch.txt:37:13 - Unknown word (graag) +log ./samples/Dutch.txt:38:4 - Unknown word (Rechten) +log ./samples/Dutch.txt:38:16 - Unknown word (derden) +log ./samples/Dutch.txt:38:33 - Unknown word (respecteert) +log ./samples/Dutch.txt:38:48 - Unknown word (rechten) +log ./samples/Dutch.txt:38:60 - Unknown word (derden) +log ./samples/Dutch.txt:39:13 - Unknown word (gegevens) +log ./samples/Dutch.txt:39:22 - Unknown word (vrij) +log ./samples/Dutch.txt:39:27 - Unknown word (beschikbaar) +log ./samples/Dutch.txt:39:39 - Unknown word (houden) +log ./samples/Dutch.txt:39:47 - Unknown word (Voor) +log ./samples/Dutch.txt:39:52 - Unknown word (bijdragen) +log ./samples/Dutch.txt:40:6 - Unknown word (daarom) +log ./samples/Dutch.txt:40:13 - Unknown word (niet) +log ./samples/Dutch.txt:40:18 - Unknown word (zonder) +log ./samples/Dutch.txt:40:25 - Unknown word (toestemming) +log ./samples/Dutch.txt:40:37 - Unknown word (gebruikmaken) +log ./samples/Dutch.txt:40:54 - Unknown word (beschermde) +log ./samples/Dutch.txt:40:65 - Unknown word (naslagwerken) +log ./samples/Dutch.txt:41:4 - Unknown word (zoals) +log ./samples/Dutch.txt:41:10 - Unknown word (woordenboeken) +log ./samples/Dutch.txt:41:36 - Unknown word (toegestaan) +log ./samples/Dutch.txt:41:50 - Unknown word (gebruik) +log ./samples/Dutch.txt:41:61 - Unknown word (maken) +log ./samples/Dutch.txt:42:4 - Unknown word (materialen) +log ./samples/Dutch.txt:42:22 - Unknown word (Nederlandse) +log ./samples/Dutch.txt:42:34 - Unknown word (Taalunie) +log ./samples/Dutch.txt:42:44 - Unknown word (zoals) +log ./samples/Dutch.txt:42:53 - Unknown word (leidraad) +log ./samples/Dutch.txt:42:68 - Unknown word (woordenlijst) +log ./samples/Dutch.txt:43:4 - Unknown word (Indien) +log ./samples/Dutch.txt:43:17 - Unknown word (mening) +log ./samples/Dutch.txt:43:42 - Unknown word (inbreuk) +log ./samples/Dutch.txt:43:50 - Unknown word (maakt) +log ./samples/Dutch.txt:43:62 - Unknown word (rechten) +log ./samples/Dutch.txt:44:4 - Unknown word (verzoeken) +log ./samples/Dutch.txt:44:19 - Unknown word (hierover) +log ./samples/Dutch.txt:44:31 - Unknown word (spoedig) +log ./samples/Dutch.txt:44:39 - Unknown word (mogelijk) +log ./samples/Dutch.txt:44:48 - Unknown word (schriftelijk) +log ./samples/Dutch.txt:45:7 - Unknown word (nemen) +log ./samples/Dutch.txt:46:13 - Unknown word (Stichting) +log ./samples/Dutch.txt:59:56 - Unknown word (Brouwer) +log ./samples/Dutch.txt:60:11 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:60:32 - Unknown word (Gebruikersgroep) +log ./samples/Dutch.txt:68:42 - Unknown word (unported) +log ./samples/Dutch.txt:74:39 - Unknown word (RABONL) +log ./samples/Dutch.txt:74:49 - Unknown word (IBAN) +log ./samples/Dutch.txt:74:59 - Unknown word (RABO) +log ./samples/Dutch.txt:75:4 - Unknown word (Stichting) +log ./samples/Dutch.txt:77:58 - Unknown word (algemeen) +log ./samples/Dutch.txt:77:71 - Unknown word (beogende) +log ./samples/Dutch.txt:78:4 - Unknown word (instelling) +log ./samples/Dutch.txt:78:18 - Unknown word (ANBI) +error CSpell: Files checked: 1, Issues found: 189 in 1 files" +`; + exports[`Validate cli app trace hello Expect Error: undefined 1`] = `Array []`; exports[`Validate cli app trace help Expect Error: outputHelp 1`] = ` @@ -255,12 +543,619 @@ exports[`Validate cli app trace missing dictionary Expect Error: [Function Check exports[`Validate cli app trace not-in-any-dictionary Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app with errors and excludes Expect Error: [Function CheckFailed] 1`] = `Array []`; + +exports[`Validate cli app with errors and excludes Expect Error: [Function CheckFailed] 2`] = ` +"error 1/10 ./samples/comments_only - +error 2/10 ./samples/cspell-bad.json 0.00ms +error 3/10 ./samples/cspell-includes.json 0.00ms +error 4/10 ./samples/cspell-missing-dict.json 0.00ms +error 5/10 ./samples/latex - +error 6/10 ./samples/linked - +error 7/10 ./samples/sample.c 0.00ms +error 8/10 ./samples/sample.py 0.00ms +error 9/10 ./samples/src - +error 10/10 ./samples/text.txt 0.00ms X +log ./samples/text.txt:1:14 - Unknown word (fulll) +log ./samples/text.txt:1:23 - Unknown word (errrorrrs) +log ./samples/text.txt:3:4 - Unknown word (hass) +log ./samples/text.txt:3:9 - Unknown word (someissues) +log ./samples/text.txt:3:23 - Unknown word (everyline) +log ./samples/text.txt:5:24 - Unknown word (okkk) +log ./samples/text.txt:5:32 - Unknown word (reead) +error CSpell: Files checked: 6, Issues found: 7 in 1 files" +`; + exports[`Validate cli app with spelling errors --debug Dutch.txt Expect Error: [Function CheckFailed] 1`] = `Array []`; exports[`Validate cli app with spelling errors --silent Dutch.txt Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app with spelling errors --silent Dutch.txt Expect Error: [Function CheckFailed] 2`] = `""`; + exports[`Validate cli app with spelling errors Dutch.txt --legacy Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app with spelling errors Dutch.txt --legacy Expect Error: [Function CheckFailed] 2`] = ` +"error 1/1 ./samples/Dutch.txt 0.00ms X +log ./samples/Dutch.txt[1, 32]: Unknown word: NEDERLANDS +log ./samples/Dutch.txt[2, 11]: Unknown word: wordt +log ./samples/Dutch.txt[2, 17]: Unknown word: vriendelijk +log ./samples/Dutch.txt[2, 29]: Unknown word: verzocht +log ./samples/Dutch.txt[2, 45]: Unknown word: bestand +log ./samples/Dutch.txt[3, 10]: Unknown word: lezen +log ./samples/Dutch.txt[3, 26]: Unknown word: leveren +log ./samples/Dutch.txt[3, 38]: Unknown word: iedere +log ./samples/Dutch.txt[3, 45]: Unknown word: kopie +log ./samples/Dutch.txt[3, 59]: Unknown word: taalhulpbestand +log ./samples/Dutch.txt[5, 4]: Unknown word: Naam +log ./samples/Dutch.txt[5, 10]: Unknown word: Nederlandstalige +log ./samples/Dutch.txt[5, 27]: Unknown word: woordenlijst +log ./samples/Dutch.txt[5, 40]: Unknown word: voor +log ./samples/Dutch.txt[5, 45]: Unknown word: spellingcontrole +log ./samples/Dutch.txt[6, 4]: Unknown word: Versie +log ./samples/Dutch.txt[6, 11]: Unknown word: woordenlijst +log ./samples/Dutch.txt[6, 32]: Unknown word: versie +log ./samples/Dutch.txt[6, 39]: Unknown word: spellingcontrole +log ./samples/Dutch.txt[7, 4]: Unknown word: Vereisten +log ./samples/Dutch.txt[7, 33]: Unknown word: hoger +log ./samples/Dutch.txt[8, 4]: Unknown word: Keurmerk +log ./samples/Dutch.txt[8, 22]: Unknown word: Nederlandse +log ./samples/Dutch.txt[8, 34]: Unknown word: Taalunie +log ./samples/Dutch.txt[8, 47]: Unknown word: lijst +log ./samples/Dutch.txt[8, 57]: Unknown word: basiswoorden +log ./samples/Dutch.txt[9, 13]: Unknown word: draagt +log ./samples/Dutch.txt[9, 24]: Unknown word: keurmerk +log ./samples/Dutch.txt[9, 40]: Unknown word: Nederlandse +log ./samples/Dutch.txt[9, 52]: Unknown word: Taalunie +log ./samples/Dutch.txt[9, 62]: Unknown word: Voor +log ./samples/Dutch.txt[9, 67]: Unknown word: meer +log ./samples/Dutch.txt[10, 4]: Unknown word: informatie +log ./samples/Dutch.txt[11, 4]: Unknown word: Auteursrechten +log ./samples/Dutch.txt[11, 60]: Unknown word: Brouwer +log ./samples/Dutch.txt[12, 11]: Unknown word: Nederlandstalige +log ./samples/Dutch.txt[12, 32]: Unknown word: Gebruikersgroep +log ./samples/Dutch.txt[13, 4]: Unknown word: Licenties +log ./samples/Dutch.txt[13, 24]: Unknown word: heeft +log ./samples/Dutch.txt[13, 34]: Unknown word: doel +log ./samples/Dutch.txt[13, 42]: Unknown word: vrij +log ./samples/Dutch.txt[13, 47]: Unknown word: beschikbare +log ./samples/Dutch.txt[13, 59]: Unknown word: Nederlandstalige +log ./samples/Dutch.txt[14, 4]: Unknown word: taalhulpbestanden +log ./samples/Dutch.txt[14, 25]: Unknown word: ontwikkelen +log ./samples/Dutch.txt[14, 43]: Unknown word: verspreiden +log ./samples/Dutch.txt[14, 70]: Unknown word: gebruik +log ./samples/Dutch.txt[15, 4]: Unknown word: mogelijk +log ./samples/Dutch.txt[15, 16]: Unknown word: maken +log ./samples/Dutch.txt[15, 22]: Unknown word: zijn +log ./samples/Dutch.txt[15, 30]: Unknown word: taalhulpbestanden +log ./samples/Dutch.txt[15, 55]: Unknown word: beschikbaar +log ./samples/Dutch.txt[15, 67]: Unknown word: onder +log ./samples/Dutch.txt[16, 4]: Unknown word: onderstaande +log ./samples/Dutch.txt[16, 18]: Unknown word: liberale +log ./samples/Dutch.txt[16, 27]: Unknown word: licenties +log ./samples/Dutch.txt[16, 37]: Unknown word: naar +log ./samples/Dutch.txt[16, 42]: Unknown word: keuze +log ./samples/Dutch.txt[16, 55]: Unknown word: gebruiker +log ./samples/Dutch.txt[16, 68]: Unknown word: wordt +log ./samples/Dutch.txt[17, 4]: Unknown word: zeerste +log ./samples/Dutch.txt[17, 12]: Unknown word: aangeraden +log ./samples/Dutch.txt[17, 26]: Unknown word: voorafgaand +log ./samples/Dutch.txt[17, 46]: Unknown word: gebruik +log ./samples/Dutch.txt[17, 54]: Unknown word: kennis +log ./samples/Dutch.txt[17, 64]: Unknown word: nemen +log ./samples/Dutch.txt[18, 4]: Unknown word: toepasselijke +log ./samples/Dutch.txt[18, 18]: Unknown word: licentie +log ./samples/Dutch.txt[19, 12]: Unknown word: herziene +log ./samples/Dutch.txt[19, 21]: Unknown word: versie +log ./samples/Dutch.txt[20, 6]: Unknown word: Volledige +log ./samples/Dutch.txt[20, 16]: Unknown word: licentie +log ./samples/Dutch.txt[21, 6]: Unknown word: Samenvatting +log ./samples/Dutch.txt[22, 25]: Unknown word: Naamsvermelding +log ./samples/Dutch.txt[22, 46]: Unknown word: unported +log ./samples/Dutch.txt[23, 6]: Unknown word: Volledige +log ./samples/Dutch.txt[23, 16]: Unknown word: licentie +log ./samples/Dutch.txt[24, 6]: Unknown word: Samenvatting +log ./samples/Dutch.txt[25, 4]: Unknown word: Steun +log ./samples/Dutch.txt[25, 36]: Unknown word: vrijwilligersproject +log ./samples/Dutch.txt[25, 57]: Unknown word: zonder +log ./samples/Dutch.txt[25, 64]: Unknown word: winstoogmerk +log ./samples/Dutch.txt[26, 13]: Unknown word: kleine +log ./samples/Dutch.txt[26, 21]: Unknown word: financiële +log ./samples/Dutch.txt[26, 32]: Unknown word: steun +log ./samples/Dutch.txt[26, 51]: Unknown word: meer +log ./samples/Dutch.txt[26, 56]: Unknown word: activiteiten +log ./samples/Dutch.txt[26, 69]: Unknown word: ontplooien +log ./samples/Dutch.txt[27, 19]: Unknown word: professionaliseren +log ./samples/Dutch.txt[27, 42]: Unknown word: donatie +log ./samples/Dutch.txt[27, 63]: Unknown word: welkom +log ./samples/Dutch.txt[28, 4]: Unknown word: rekeningnummer +log ./samples/Dutch.txt[28, 39]: Unknown word: Stichting +log ./samples/Dutch.txt[28, 62]: Unknown word: giften +log ./samples/Dutch.txt[28, 69]: Unknown word: zijn +log ./samples/Dutch.txt[29, 4]: Unknown word: aftrekbaar +log ./samples/Dutch.txt[29, 22]: Unknown word: belasting +log ./samples/Dutch.txt[29, 33]: Unknown word: Stichting +log ./samples/Dutch.txt[29, 55]: Unknown word: namelijk +log ./samples/Dutch.txt[30, 4]: Unknown word: Belastingdienst +log ./samples/Dutch.txt[30, 20]: Unknown word: erkend +log ./samples/Dutch.txt[30, 31]: Unknown word: ANBI +log ./samples/Dutch.txt[30, 37]: Unknown word: oftewel +log ./samples/Dutch.txt[30, 46]: Unknown word: Algemeen +log ./samples/Dutch.txt[30, 59]: Unknown word: Beogende +log ./samples/Dutch.txt[30, 68]: Unknown word: Instelling +log ./samples/Dutch.txt[32, 4]: Unknown word: Meedoen +log ./samples/Dutch.txt[32, 13]: Unknown word: Iedereen +log ./samples/Dutch.txt[32, 25]: Unknown word: welkom +log ./samples/Dutch.txt[32, 42]: Unknown word: doen +log ./samples/Dutch.txt[32, 53]: Unknown word: fouten +log ./samples/Dutch.txt[32, 61]: Unknown word: discussieer +log ./samples/Dutch.txt[33, 7]: Unknown word: mailinglijst +log ./samples/Dutch.txt[33, 23]: Unknown word: draai +log ./samples/Dutch.txt[33, 52]: Unknown word: dragen +log ./samples/Dutch.txt[33, 75]: Unknown word: stemt +log ./samples/Dutch.txt[34, 6]: Unknown word: ermee +log ./samples/Dutch.txt[34, 22]: Unknown word: bijdrage +log ./samples/Dutch.txt[34, 39]: Unknown word: desbetreffende +log ./samples/Dutch.txt[34, 54]: Unknown word: taalhulpbestand +log ./samples/Dutch.txt[34, 70]: Unknown word: beschikbaar +log ./samples/Dutch.txt[35, 4]: Unknown word: komt +log ./samples/Dutch.txt[35, 9]: Unknown word: onder +log ./samples/Dutch.txt[35, 15]: Unknown word: vrije +log ./samples/Dutch.txt[35, 27]: Unknown word: opensource +log ./samples/Dutch.txt[35, 38]: Unknown word: licenties +log ./samples/Dutch.txt[35, 49]: Unknown word: Indien +log ./samples/Dutch.txt[35, 62]: Unknown word: wenst +log ./samples/Dutch.txt[36, 4]: Unknown word: naam +log ./samples/Dutch.txt[36, 23]: Unknown word: genoemd +log ./samples/Dutch.txt[36, 31]: Unknown word: worden +log ./samples/Dutch.txt[36, 42]: Unknown word: ontvangen +log ./samples/Dutch.txt[36, 55]: Unknown word: schriftelijk +log ./samples/Dutch.txt[36, 68]: Unknown word: verzoek +log ./samples/Dutch.txt[37, 4]: Unknown word: daarvoor +log ./samples/Dutch.txt[37, 13]: Unknown word: graag +log ./samples/Dutch.txt[38, 4]: Unknown word: Rechten +log ./samples/Dutch.txt[38, 16]: Unknown word: derden +log ./samples/Dutch.txt[38, 33]: Unknown word: respecteert +log ./samples/Dutch.txt[38, 48]: Unknown word: rechten +log ./samples/Dutch.txt[38, 60]: Unknown word: derden +log ./samples/Dutch.txt[39, 13]: Unknown word: gegevens +log ./samples/Dutch.txt[39, 22]: Unknown word: vrij +log ./samples/Dutch.txt[39, 27]: Unknown word: beschikbaar +log ./samples/Dutch.txt[39, 39]: Unknown word: houden +log ./samples/Dutch.txt[39, 47]: Unknown word: Voor +log ./samples/Dutch.txt[39, 52]: Unknown word: bijdragen +log ./samples/Dutch.txt[40, 6]: Unknown word: daarom +log ./samples/Dutch.txt[40, 13]: Unknown word: niet +log ./samples/Dutch.txt[40, 18]: Unknown word: zonder +log ./samples/Dutch.txt[40, 25]: Unknown word: toestemming +log ./samples/Dutch.txt[40, 37]: Unknown word: gebruikmaken +log ./samples/Dutch.txt[40, 54]: Unknown word: beschermde +log ./samples/Dutch.txt[40, 65]: Unknown word: naslagwerken +log ./samples/Dutch.txt[41, 4]: Unknown word: zoals +log ./samples/Dutch.txt[41, 10]: Unknown word: woordenboeken +log ./samples/Dutch.txt[41, 36]: Unknown word: toegestaan +log ./samples/Dutch.txt[41, 50]: Unknown word: gebruik +log ./samples/Dutch.txt[41, 61]: Unknown word: maken +log ./samples/Dutch.txt[42, 4]: Unknown word: materialen +log ./samples/Dutch.txt[42, 22]: Unknown word: Nederlandse +log ./samples/Dutch.txt[42, 34]: Unknown word: Taalunie +log ./samples/Dutch.txt[42, 44]: Unknown word: zoals +log ./samples/Dutch.txt[42, 53]: Unknown word: leidraad +log ./samples/Dutch.txt[42, 68]: Unknown word: woordenlijst +log ./samples/Dutch.txt[43, 4]: Unknown word: Indien +log ./samples/Dutch.txt[43, 17]: Unknown word: mening +log ./samples/Dutch.txt[43, 42]: Unknown word: inbreuk +log ./samples/Dutch.txt[43, 50]: Unknown word: maakt +log ./samples/Dutch.txt[43, 62]: Unknown word: rechten +log ./samples/Dutch.txt[44, 4]: Unknown word: verzoeken +log ./samples/Dutch.txt[44, 19]: Unknown word: hierover +log ./samples/Dutch.txt[44, 31]: Unknown word: spoedig +log ./samples/Dutch.txt[44, 39]: Unknown word: mogelijk +log ./samples/Dutch.txt[44, 48]: Unknown word: schriftelijk +log ./samples/Dutch.txt[45, 7]: Unknown word: nemen +log ./samples/Dutch.txt[46, 13]: Unknown word: Stichting +log ./samples/Dutch.txt[59, 56]: Unknown word: Brouwer +log ./samples/Dutch.txt[60, 11]: Unknown word: Nederlandstalige +log ./samples/Dutch.txt[60, 32]: Unknown word: Gebruikersgroep +log ./samples/Dutch.txt[68, 42]: Unknown word: unported +log ./samples/Dutch.txt[74, 39]: Unknown word: RABONL +log ./samples/Dutch.txt[74, 49]: Unknown word: IBAN +log ./samples/Dutch.txt[74, 59]: Unknown word: RABO +log ./samples/Dutch.txt[75, 4]: Unknown word: Stichting +log ./samples/Dutch.txt[77, 58]: Unknown word: algemeen +log ./samples/Dutch.txt[77, 71]: Unknown word: beogende +log ./samples/Dutch.txt[78, 4]: Unknown word: instelling +log ./samples/Dutch.txt[78, 18]: Unknown word: ANBI +error CSpell: Files checked: 1, Issues found: 189 in 1 files" +`; + exports[`Validate cli app with spelling errors Dutch.txt Expect Error: [Function CheckFailed] 1`] = `Array []`; +exports[`Validate cli app with spelling errors Dutch.txt Expect Error: [Function CheckFailed] 2`] = ` +"error 1/1 ./samples/Dutch.txt 0.00ms X +log ./samples/Dutch.txt:1:32 - Unknown word (NEDERLANDS) +log ./samples/Dutch.txt:2:11 - Unknown word (wordt) +log ./samples/Dutch.txt:2:17 - Unknown word (vriendelijk) +log ./samples/Dutch.txt:2:29 - Unknown word (verzocht) +log ./samples/Dutch.txt:2:45 - Unknown word (bestand) +log ./samples/Dutch.txt:3:10 - Unknown word (lezen) +log ./samples/Dutch.txt:3:26 - Unknown word (leveren) +log ./samples/Dutch.txt:3:38 - Unknown word (iedere) +log ./samples/Dutch.txt:3:45 - Unknown word (kopie) +log ./samples/Dutch.txt:3:59 - Unknown word (taalhulpbestand) +log ./samples/Dutch.txt:5:4 - Unknown word (Naam) +log ./samples/Dutch.txt:5:10 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:5:27 - Unknown word (woordenlijst) +log ./samples/Dutch.txt:5:40 - Unknown word (voor) +log ./samples/Dutch.txt:5:45 - Unknown word (spellingcontrole) +log ./samples/Dutch.txt:6:4 - Unknown word (Versie) +log ./samples/Dutch.txt:6:11 - Unknown word (woordenlijst) +log ./samples/Dutch.txt:6:32 - Unknown word (versie) +log ./samples/Dutch.txt:6:39 - Unknown word (spellingcontrole) +log ./samples/Dutch.txt:7:4 - Unknown word (Vereisten) +log ./samples/Dutch.txt:7:33 - Unknown word (hoger) +log ./samples/Dutch.txt:8:4 - Unknown word (Keurmerk) +log ./samples/Dutch.txt:8:22 - Unknown word (Nederlandse) +log ./samples/Dutch.txt:8:34 - Unknown word (Taalunie) +log ./samples/Dutch.txt:8:47 - Unknown word (lijst) +log ./samples/Dutch.txt:8:57 - Unknown word (basiswoorden) +log ./samples/Dutch.txt:9:13 - Unknown word (draagt) +log ./samples/Dutch.txt:9:24 - Unknown word (keurmerk) +log ./samples/Dutch.txt:9:40 - Unknown word (Nederlandse) +log ./samples/Dutch.txt:9:52 - Unknown word (Taalunie) +log ./samples/Dutch.txt:9:62 - Unknown word (Voor) +log ./samples/Dutch.txt:9:67 - Unknown word (meer) +log ./samples/Dutch.txt:10:4 - Unknown word (informatie) +log ./samples/Dutch.txt:11:4 - Unknown word (Auteursrechten) +log ./samples/Dutch.txt:11:60 - Unknown word (Brouwer) +log ./samples/Dutch.txt:12:11 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:12:32 - Unknown word (Gebruikersgroep) +log ./samples/Dutch.txt:13:4 - Unknown word (Licenties) +log ./samples/Dutch.txt:13:24 - Unknown word (heeft) +log ./samples/Dutch.txt:13:34 - Unknown word (doel) +log ./samples/Dutch.txt:13:42 - Unknown word (vrij) +log ./samples/Dutch.txt:13:47 - Unknown word (beschikbare) +log ./samples/Dutch.txt:13:59 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:14:4 - Unknown word (taalhulpbestanden) +log ./samples/Dutch.txt:14:25 - Unknown word (ontwikkelen) +log ./samples/Dutch.txt:14:43 - Unknown word (verspreiden) +log ./samples/Dutch.txt:14:70 - Unknown word (gebruik) +log ./samples/Dutch.txt:15:4 - Unknown word (mogelijk) +log ./samples/Dutch.txt:15:16 - Unknown word (maken) +log ./samples/Dutch.txt:15:22 - Unknown word (zijn) +log ./samples/Dutch.txt:15:30 - Unknown word (taalhulpbestanden) +log ./samples/Dutch.txt:15:55 - Unknown word (beschikbaar) +log ./samples/Dutch.txt:15:67 - Unknown word (onder) +log ./samples/Dutch.txt:16:4 - Unknown word (onderstaande) +log ./samples/Dutch.txt:16:18 - Unknown word (liberale) +log ./samples/Dutch.txt:16:27 - Unknown word (licenties) +log ./samples/Dutch.txt:16:37 - Unknown word (naar) +log ./samples/Dutch.txt:16:42 - Unknown word (keuze) +log ./samples/Dutch.txt:16:55 - Unknown word (gebruiker) +log ./samples/Dutch.txt:16:68 - Unknown word (wordt) +log ./samples/Dutch.txt:17:4 - Unknown word (zeerste) +log ./samples/Dutch.txt:17:12 - Unknown word (aangeraden) +log ./samples/Dutch.txt:17:26 - Unknown word (voorafgaand) +log ./samples/Dutch.txt:17:46 - Unknown word (gebruik) +log ./samples/Dutch.txt:17:54 - Unknown word (kennis) +log ./samples/Dutch.txt:17:64 - Unknown word (nemen) +log ./samples/Dutch.txt:18:4 - Unknown word (toepasselijke) +log ./samples/Dutch.txt:18:18 - Unknown word (licentie) +log ./samples/Dutch.txt:19:12 - Unknown word (herziene) +log ./samples/Dutch.txt:19:21 - Unknown word (versie) +log ./samples/Dutch.txt:20:6 - Unknown word (Volledige) +log ./samples/Dutch.txt:20:16 - Unknown word (licentie) +log ./samples/Dutch.txt:21:6 - Unknown word (Samenvatting) +log ./samples/Dutch.txt:22:25 - Unknown word (Naamsvermelding) +log ./samples/Dutch.txt:22:46 - Unknown word (unported) +log ./samples/Dutch.txt:23:6 - Unknown word (Volledige) +log ./samples/Dutch.txt:23:16 - Unknown word (licentie) +log ./samples/Dutch.txt:24:6 - Unknown word (Samenvatting) +log ./samples/Dutch.txt:25:4 - Unknown word (Steun) +log ./samples/Dutch.txt:25:36 - Unknown word (vrijwilligersproject) +log ./samples/Dutch.txt:25:57 - Unknown word (zonder) +log ./samples/Dutch.txt:25:64 - Unknown word (winstoogmerk) +log ./samples/Dutch.txt:26:13 - Unknown word (kleine) +log ./samples/Dutch.txt:26:21 - Unknown word (financiële) +log ./samples/Dutch.txt:26:32 - Unknown word (steun) +log ./samples/Dutch.txt:26:51 - Unknown word (meer) +log ./samples/Dutch.txt:26:56 - Unknown word (activiteiten) +log ./samples/Dutch.txt:26:69 - Unknown word (ontplooien) +log ./samples/Dutch.txt:27:19 - Unknown word (professionaliseren) +log ./samples/Dutch.txt:27:42 - Unknown word (donatie) +log ./samples/Dutch.txt:27:63 - Unknown word (welkom) +log ./samples/Dutch.txt:28:4 - Unknown word (rekeningnummer) +log ./samples/Dutch.txt:28:39 - Unknown word (Stichting) +log ./samples/Dutch.txt:28:62 - Unknown word (giften) +log ./samples/Dutch.txt:28:69 - Unknown word (zijn) +log ./samples/Dutch.txt:29:4 - Unknown word (aftrekbaar) +log ./samples/Dutch.txt:29:22 - Unknown word (belasting) +log ./samples/Dutch.txt:29:33 - Unknown word (Stichting) +log ./samples/Dutch.txt:29:55 - Unknown word (namelijk) +log ./samples/Dutch.txt:30:4 - Unknown word (Belastingdienst) +log ./samples/Dutch.txt:30:20 - Unknown word (erkend) +log ./samples/Dutch.txt:30:31 - Unknown word (ANBI) +log ./samples/Dutch.txt:30:37 - Unknown word (oftewel) +log ./samples/Dutch.txt:30:46 - Unknown word (Algemeen) +log ./samples/Dutch.txt:30:59 - Unknown word (Beogende) +log ./samples/Dutch.txt:30:68 - Unknown word (Instelling) +log ./samples/Dutch.txt:32:4 - Unknown word (Meedoen) +log ./samples/Dutch.txt:32:13 - Unknown word (Iedereen) +log ./samples/Dutch.txt:32:25 - Unknown word (welkom) +log ./samples/Dutch.txt:32:42 - Unknown word (doen) +log ./samples/Dutch.txt:32:53 - Unknown word (fouten) +log ./samples/Dutch.txt:32:61 - Unknown word (discussieer) +log ./samples/Dutch.txt:33:7 - Unknown word (mailinglijst) +log ./samples/Dutch.txt:33:23 - Unknown word (draai) +log ./samples/Dutch.txt:33:52 - Unknown word (dragen) +log ./samples/Dutch.txt:33:75 - Unknown word (stemt) +log ./samples/Dutch.txt:34:6 - Unknown word (ermee) +log ./samples/Dutch.txt:34:22 - Unknown word (bijdrage) +log ./samples/Dutch.txt:34:39 - Unknown word (desbetreffende) +log ./samples/Dutch.txt:34:54 - Unknown word (taalhulpbestand) +log ./samples/Dutch.txt:34:70 - Unknown word (beschikbaar) +log ./samples/Dutch.txt:35:4 - Unknown word (komt) +log ./samples/Dutch.txt:35:9 - Unknown word (onder) +log ./samples/Dutch.txt:35:15 - Unknown word (vrije) +log ./samples/Dutch.txt:35:27 - Unknown word (opensource) +log ./samples/Dutch.txt:35:38 - Unknown word (licenties) +log ./samples/Dutch.txt:35:49 - Unknown word (Indien) +log ./samples/Dutch.txt:35:62 - Unknown word (wenst) +log ./samples/Dutch.txt:36:4 - Unknown word (naam) +log ./samples/Dutch.txt:36:23 - Unknown word (genoemd) +log ./samples/Dutch.txt:36:31 - Unknown word (worden) +log ./samples/Dutch.txt:36:42 - Unknown word (ontvangen) +log ./samples/Dutch.txt:36:55 - Unknown word (schriftelijk) +log ./samples/Dutch.txt:36:68 - Unknown word (verzoek) +log ./samples/Dutch.txt:37:4 - Unknown word (daarvoor) +log ./samples/Dutch.txt:37:13 - Unknown word (graag) +log ./samples/Dutch.txt:38:4 - Unknown word (Rechten) +log ./samples/Dutch.txt:38:16 - Unknown word (derden) +log ./samples/Dutch.txt:38:33 - Unknown word (respecteert) +log ./samples/Dutch.txt:38:48 - Unknown word (rechten) +log ./samples/Dutch.txt:38:60 - Unknown word (derden) +log ./samples/Dutch.txt:39:13 - Unknown word (gegevens) +log ./samples/Dutch.txt:39:22 - Unknown word (vrij) +log ./samples/Dutch.txt:39:27 - Unknown word (beschikbaar) +log ./samples/Dutch.txt:39:39 - Unknown word (houden) +log ./samples/Dutch.txt:39:47 - Unknown word (Voor) +log ./samples/Dutch.txt:39:52 - Unknown word (bijdragen) +log ./samples/Dutch.txt:40:6 - Unknown word (daarom) +log ./samples/Dutch.txt:40:13 - Unknown word (niet) +log ./samples/Dutch.txt:40:18 - Unknown word (zonder) +log ./samples/Dutch.txt:40:25 - Unknown word (toestemming) +log ./samples/Dutch.txt:40:37 - Unknown word (gebruikmaken) +log ./samples/Dutch.txt:40:54 - Unknown word (beschermde) +log ./samples/Dutch.txt:40:65 - Unknown word (naslagwerken) +log ./samples/Dutch.txt:41:4 - Unknown word (zoals) +log ./samples/Dutch.txt:41:10 - Unknown word (woordenboeken) +log ./samples/Dutch.txt:41:36 - Unknown word (toegestaan) +log ./samples/Dutch.txt:41:50 - Unknown word (gebruik) +log ./samples/Dutch.txt:41:61 - Unknown word (maken) +log ./samples/Dutch.txt:42:4 - Unknown word (materialen) +log ./samples/Dutch.txt:42:22 - Unknown word (Nederlandse) +log ./samples/Dutch.txt:42:34 - Unknown word (Taalunie) +log ./samples/Dutch.txt:42:44 - Unknown word (zoals) +log ./samples/Dutch.txt:42:53 - Unknown word (leidraad) +log ./samples/Dutch.txt:42:68 - Unknown word (woordenlijst) +log ./samples/Dutch.txt:43:4 - Unknown word (Indien) +log ./samples/Dutch.txt:43:17 - Unknown word (mening) +log ./samples/Dutch.txt:43:42 - Unknown word (inbreuk) +log ./samples/Dutch.txt:43:50 - Unknown word (maakt) +log ./samples/Dutch.txt:43:62 - Unknown word (rechten) +log ./samples/Dutch.txt:44:4 - Unknown word (verzoeken) +log ./samples/Dutch.txt:44:19 - Unknown word (hierover) +log ./samples/Dutch.txt:44:31 - Unknown word (spoedig) +log ./samples/Dutch.txt:44:39 - Unknown word (mogelijk) +log ./samples/Dutch.txt:44:48 - Unknown word (schriftelijk) +log ./samples/Dutch.txt:45:7 - Unknown word (nemen) +log ./samples/Dutch.txt:46:13 - Unknown word (Stichting) +log ./samples/Dutch.txt:59:56 - Unknown word (Brouwer) +log ./samples/Dutch.txt:60:11 - Unknown word (Nederlandstalige) +log ./samples/Dutch.txt:60:32 - Unknown word (Gebruikersgroep) +log ./samples/Dutch.txt:68:42 - Unknown word (unported) +log ./samples/Dutch.txt:74:39 - Unknown word (RABONL) +log ./samples/Dutch.txt:74:49 - Unknown word (IBAN) +log ./samples/Dutch.txt:74:59 - Unknown word (RABO) +log ./samples/Dutch.txt:75:4 - Unknown word (Stichting) +log ./samples/Dutch.txt:77:58 - Unknown word (algemeen) +log ./samples/Dutch.txt:77:71 - Unknown word (beogende) +log ./samples/Dutch.txt:78:4 - Unknown word (instelling) +log ./samples/Dutch.txt:78:18 - Unknown word (ANBI) +error CSpell: Files checked: 1, Issues found: 189 in 1 files" +`; + exports[`Validate cli app with spelling errors Dutch.txt words only Expect Error: [Function CheckFailed] 1`] = `Array []`; + +exports[`Validate cli app with spelling errors Dutch.txt words only Expect Error: [Function CheckFailed] 2`] = ` +"error 1/1 ./samples/Dutch.txt 0.00ms X +log NEDERLANDS +log wordt +log vriendelijk +log verzocht +log bestand +log lezen +log leveren +log iedere +log kopie +log taalhulpbestand +log Naam +log Nederlandstalige +log woordenlijst +log voor +log spellingcontrole +log Versie +log woordenlijst +log versie +log spellingcontrole +log Vereisten +log hoger +log Keurmerk +log Nederlandse +log Taalunie +log lijst +log basiswoorden +log draagt +log keurmerk +log Nederlandse +log Taalunie +log Voor +log meer +log informatie +log Auteursrechten +log Brouwer +log Nederlandstalige +log Gebruikersgroep +log Licenties +log heeft +log doel +log vrij +log beschikbare +log Nederlandstalige +log taalhulpbestanden +log ontwikkelen +log verspreiden +log gebruik +log mogelijk +log maken +log zijn +log taalhulpbestanden +log beschikbaar +log onder +log onderstaande +log liberale +log licenties +log naar +log keuze +log gebruiker +log wordt +log zeerste +log aangeraden +log voorafgaand +log gebruik +log kennis +log nemen +log toepasselijke +log licentie +log herziene +log versie +log Volledige +log licentie +log Samenvatting +log Naamsvermelding +log unported +log Volledige +log licentie +log Samenvatting +log Steun +log vrijwilligersproject +log zonder +log winstoogmerk +log kleine +log financiële +log steun +log meer +log activiteiten +log ontplooien +log professionaliseren +log donatie +log welkom +log rekeningnummer +log Stichting +log giften +log zijn +log aftrekbaar +log belasting +log Stichting +log namelijk +log Belastingdienst +log erkend +log ANBI +log oftewel +log Algemeen +log Beogende +log Instelling +log Meedoen +log Iedereen +log welkom +log doen +log fouten +log discussieer +log mailinglijst +log draai +log dragen +log stemt +log ermee +log bijdrage +log desbetreffende +log taalhulpbestand +log beschikbaar +log komt +log onder +log vrije +log opensource +log licenties +log Indien +log wenst +log naam +log genoemd +log worden +log ontvangen +log schriftelijk +log verzoek +log daarvoor +log graag +log Rechten +log derden +log respecteert +log rechten +log derden +log gegevens +log vrij +log beschikbaar +log houden +log Voor +log bijdragen +log daarom +log niet +log zonder +log toestemming +log gebruikmaken +log beschermde +log naslagwerken +log zoals +log woordenboeken +log toegestaan +log gebruik +log maken +log materialen +log Nederlandse +log Taalunie +log zoals +log leidraad +log woordenlijst +log Indien +log mening +log inbreuk +log maakt +log rechten +log verzoeken +log hierover +log spoedig +log mogelijk +log schriftelijk +log nemen +log Stichting +log Brouwer +log Nederlandstalige +log Gebruikersgroep +log unported +log RABONL +log IBAN +log RABO +log Stichting +log algemeen +log beogende +log instelling +log ANBI +error CSpell: Files checked: 1, Issues found: 189 in 1 files" +`; diff --git a/packages/cspell/src/app.test.ts b/packages/cspell/src/app.test.ts index 0db71df50c7d..b31beab96a82 100644 --- a/packages/cspell/src/app.test.ts +++ b/packages/cspell/src/app.test.ts @@ -3,7 +3,8 @@ import * as Commander from 'commander'; import * as Path from 'path'; import * as Link from './link'; import chalk from 'chalk'; -// import { listGlobalImports /* addPathsToGlobalImports, removePathsFromGlobalImports */ } from './link'; +import * as Util from 'util'; +import stripAnsi from 'strip-ansi'; const projectRoot = Path.join(__dirname, '..'); @@ -79,9 +80,10 @@ class RecordStdout { const colorLevel = chalk.level; describe('Validate cli', () => { - const error = jest.spyOn(console, 'error').mockName('console.error').mockImplementation(); - const log = jest.spyOn(console, 'log').mockName('console.log').mockImplementation(); - const info = jest.spyOn(console, 'info').mockName('console.info').mockImplementation(); + const logger = makeLogger(); + const error = jest.spyOn(console, 'error').mockName('console.error').mockImplementation(logger.error); + const log = jest.spyOn(console, 'log').mockName('console.log').mockImplementation(logger.log); + const info = jest.spyOn(console, 'info').mockName('console.info').mockImplementation(logger.info); const listGlobalImports = jest.spyOn(Link, 'listGlobalImports').mockName('istGlobalImports'); const addPathsToGlobalImports = jest.spyOn(Link, 'addPathsToGlobalImports').mockName('addPathsToGlobalImports'); const removePathsFromGlobalImports = jest @@ -90,6 +92,7 @@ describe('Validate cli', () => { const capture = new RecordStdout(); beforeEach(() => { + logger.clear(); capture.startCapture(); chalk.level = 3; }); @@ -107,32 +110,56 @@ describe('Validate cli', () => { }); test.each` - msg | testArgs | errorCheck | eError | eLog | eInfo - ${'no-args'} | ${[]} | ${'outputHelp'} | ${false} | ${false} | ${false} - ${'current_file'} | ${[__filename]} | ${undefined} | ${true} | ${false} | ${false} - ${'with spelling errors Dutch.txt'} | ${[pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${false} - ${'with spelling errors Dutch.txt words only'} | ${[pathSamples('Dutch.txt'), '--wordsOnly']} | ${app.CheckFailed} | ${true} | ${true} | ${false} - ${'with spelling errors Dutch.txt --legacy'} | ${[pathSamples('Dutch.txt'), '--legacy']} | ${app.CheckFailed} | ${true} | ${true} | ${false} - ${'with spelling errors --debug Dutch.txt'} | ${['--debug', pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${true} - ${'with spelling errors --silent Dutch.txt'} | ${['--silent', pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${false} | ${false} | ${false} - ${'current_file languageId'} | ${[__filename, '--languageId=typescript']} | ${undefined} | ${true} | ${false} | ${false} - ${'trace hello'} | ${['trace', 'hello']} | ${undefined} | ${false} | ${true} | ${false} - ${'trace help'} | ${['trace', '-h']} | ${'outputHelp'} | ${false} | ${false} | ${false} - ${'trace not-in-any-dictionary'} | ${['trace', 'not-in-any-dictionary']} | ${app.CheckFailed} | ${true} | ${true} | ${false} - ${'trace missing dictionary'} | ${['trace', 'hello', '-c', 'samples/cspell-missing-dict.json']} | ${app.CheckFailed} | ${true} | ${true} | ${false} - ${'check help'} | ${['check', '--help']} | ${'outputHelp'} | ${false} | ${false} | ${false} - ${'check LICENSE'} | ${['check', pathRoot('LICENSE')]} | ${undefined} | ${false} | ${true} | ${false} - ${'check missing'} | ${['check', pathRoot('missing-file.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${false} - ${'check with spelling errors'} | ${['check', pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${false} | ${true} | ${false} - ${'LICENSE'} | ${[pathRoot('LICENSE')]} | ${undefined} | ${true} | ${false} | ${false} - ${'samples/Dutch.txt'} | ${[pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${false} - ${'current_file --verbose'} | ${['--verbose', __filename]} | ${undefined} | ${true} | ${false} | ${true} - ${'bad config'} | ${['-c', __filename, __filename]} | ${app.CheckFailed} | ${true} | ${false} | ${false} - ${'not found error by default'} | ${['*.not']} | ${app.CheckFailed} | ${true} | ${false} | ${false} - ${'must find with error'} | ${['*.not', '--must-find-files']} | ${app.CheckFailed} | ${true} | ${false} | ${false} - ${'must find force no error'} | ${['*.not', '--no-must-find-files']} | ${undefined} | ${true} | ${false} | ${false} - ${'cspell-bad.json'} | ${['-c', pathSamples('cspell-bad.json'), __filename]} | ${undefined} | ${true} | ${false} | ${false} - ${'cspell-import-missing.json'} | ${['-c', pathSamples('linked/cspell-import-missing.json'), __filename]} | ${app.CheckFailed} | ${true} | ${false} | ${false} + msg | testArgs | errorCheck | eError | eLog | eInfo + ${'with errors and excludes'} | ${['-r', 'samples', '*', '-e', 'Dutch.txt', '-c', 'samples/.cspell.json']} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'no-args'} | ${[]} | ${'outputHelp'} | ${false} | ${false} | ${false} + ${'current_file'} | ${[__filename]} | ${undefined} | ${true} | ${false} | ${false} + ${'with spelling errors Dutch.txt'} | ${[pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'with spelling errors Dutch.txt words only'} | ${[pathSamples('Dutch.txt'), '--wordsOnly']} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'with spelling errors Dutch.txt --legacy'} | ${[pathSamples('Dutch.txt'), '--legacy']} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'with spelling errors --silent Dutch.txt'} | ${['--silent', pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${false} | ${false} | ${false} + ${'current_file languageId'} | ${[__filename, '--languageId=typescript']} | ${undefined} | ${true} | ${false} | ${false} + ${'check help'} | ${['check', '--help']} | ${'outputHelp'} | ${false} | ${false} | ${false} + ${'check LICENSE'} | ${['check', pathRoot('LICENSE')]} | ${undefined} | ${false} | ${true} | ${false} + ${'check missing'} | ${['check', pathRoot('missing-file.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'check with spelling errors'} | ${['check', pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${false} | ${true} | ${false} + ${'LICENSE'} | ${[pathRoot('LICENSE')]} | ${undefined} | ${true} | ${false} | ${false} + ${'samples/Dutch.txt'} | ${[pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'current_file --verbose'} | ${['--verbose', __filename]} | ${undefined} | ${true} | ${false} | ${true} + ${'bad config'} | ${['-c', __filename, __filename]} | ${app.CheckFailed} | ${true} | ${false} | ${false} + ${'not found error by default'} | ${['*.not']} | ${app.CheckFailed} | ${true} | ${false} | ${false} + ${'must find with error'} | ${['*.not', '--must-find-files']} | ${app.CheckFailed} | ${true} | ${false} | ${false} + ${'must find force no error'} | ${['*.not', '--no-must-find-files']} | ${undefined} | ${true} | ${false} | ${false} + ${'cspell-bad.json'} | ${['-c', pathSamples('cspell-bad.json'), __filename]} | ${undefined} | ${true} | ${false} | ${false} + ${'cspell-import-missing.json'} | ${['-c', pathSamples('linked/cspell-import-missing.json'), __filename]} | ${app.CheckFailed} | ${true} | ${false} | ${false} + `('app $msg Expect Error: $errorCheck', async ({ testArgs, errorCheck, eError, eLog, eInfo }: TestCase) => { + const commander = getCommander(); + const args = argv(...testArgs); + const result = app.run(commander, args); + if (!errorCheck) { + // eslint-disable-next-line jest/no-conditional-expect + await expect(result).resolves.toBeUndefined(); + } else { + // eslint-disable-next-line jest/no-conditional-expect + await expect(result).rejects.toThrowError(errorCheck); + } + // eslint-disable-next-line jest/no-conditional-expect + eError ? expect(error).toHaveBeenCalled() : expect(error).not.toHaveBeenCalled(); + // eslint-disable-next-line jest/no-conditional-expect + eLog ? expect(log).toHaveBeenCalled() : expect(log).not.toHaveBeenCalled(); + // eslint-disable-next-line jest/no-conditional-expect + eInfo ? expect(info).toHaveBeenCalled() : expect(info).not.toHaveBeenCalled(); + expect(capture.text).toMatchSnapshot(); + expect(logger.normalizedHistory()).toMatchSnapshot(); + }); + + test.each` + msg | testArgs | errorCheck | eError | eLog | eInfo + ${'trace hello'} | ${['trace', 'hello']} | ${undefined} | ${false} | ${true} | ${false} + ${'trace help'} | ${['trace', '-h']} | ${'outputHelp'} | ${false} | ${false} | ${false} + ${'trace not-in-any-dictionary'} | ${['trace', 'not-in-any-dictionary']} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'trace missing dictionary'} | ${['trace', 'hello', '-c', 'samples/cspell-missing-dict.json']} | ${app.CheckFailed} | ${true} | ${true} | ${false} + ${'with spelling errors --debug Dutch.txt'} | ${['--debug', pathSamples('Dutch.txt')]} | ${app.CheckFailed} | ${true} | ${true} | ${true} `('app $msg Expect Error: $errorCheck', async ({ testArgs, errorCheck, eError, eLog, eInfo }: TestCase) => { const commander = getCommander(); const args = argv(...testArgs); @@ -215,3 +242,40 @@ function _removePathsFromGlobalImports(): typeof Link['removePathsFromGlobalImpo type StdoutWrite = typeof process.stdout.write; type Callback = (err?: Error) => void; + +function makeLogger() { + const history: string[] = []; + + function record(prefix: string, ...rest: unknown[]) { + const s = Util.format(...rest); + s.split('\n').forEach((line) => history.push(prefix + '\t' + line)); + } + + function normalizedHistory() { + let t = history.join('\n'); + t = stripAnsi(t); + t = t.replace(RegExp(escapeRegExp(projectRoot), 'gi'), '.'); + t = t.replace(/\\/g, '/'); + t = t.replace(/(?<=^info\s+Date:).*$/gm, ' Sat, 03 Apr 2021 11:25:33 GMT'); + t = t.replace(/\b[\d.]+ms\b/g, '0.00ms'); + t = t.replace(/cspell.json/gi, 'cspell.json'); // Normalize cSpell.json to cspell.json + t = t.replace(/\b[\d.]+S\b/g, '0.00S'); + return t; + } + + return { + clear: () => { + history.length = 0; + return; + }, + log: (...params: unknown[]) => record('log', ...params), + error: (...params: unknown[]) => record('error', ...params), + info: (...params: unknown[]) => record('info', ...params), + history, + normalizedHistory, + }; +} + +function escapeRegExp(s: string): string { + return s.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d'); +} diff --git a/packages/cspell/src/app.ts b/packages/cspell/src/app.ts index 8a9c9d611046..8d330624f55e 100644 --- a/packages/cspell/src/app.ts +++ b/packages/cspell/src/app.ts @@ -79,7 +79,9 @@ function reportProgress(p: ProgressItem) { const idx = fn + '/' + fc; const filename = chalk.gray(relativeFilename(p.filename)); const time = p.elapsedTimeMs !== undefined ? chalk.white(p.elapsedTimeMs.toFixed(2) + 'ms') : '-'; - console.error(`${idx} ${filename} ${time}`); + const skipped = p.processed === false ? ' skipped' : ''; + const hasErrors = p.numErrors ? chalk.red` X` : ''; + console.error(`${idx} ${filename} ${time}${skipped}${hasErrors}`); } } @@ -350,7 +352,6 @@ function collect(value: string, previous: string[] | undefined): string[] { if (!previous) { return [value]; } - console.log(previous); return previous.concat([value]); } diff --git a/packages/cspell/src/emitters.ts b/packages/cspell/src/emitters.ts index 4ab95032e7b5..031ef3f84d2c 100644 --- a/packages/cspell/src/emitters.ts +++ b/packages/cspell/src/emitters.ts @@ -40,15 +40,19 @@ export interface SpellingErrorEmitter { } export type ProgressTypes = 'ProgressFileComplete'; -export interface ProgressItem { +export type ProgressItem = ProgressFileComplete; + +interface ProgressBase { type: ProgressTypes; } -export interface ProgressFileComplete extends ProgressItem { +export interface ProgressFileComplete extends ProgressBase { type: 'ProgressFileComplete'; fileNum: number; fileCount: number; filename: string; elapsedTimeMs: number | undefined; + processed: boolean | undefined; + numErrors: number | undefined; } export type ProgressEmitter = (p: ProgressItem | ProgressFileComplete) => void; diff --git a/packages/cspell/src/lint.ts b/packages/cspell/src/lint.ts index 82d6e93f22de..4e11ba71d998 100644 --- a/packages/cspell/src/lint.ts +++ b/packages/cspell/src/lint.ts @@ -107,14 +107,17 @@ export function runLint(cfg: CSpellApplicationConfiguration): Promise let n = 0; for (const fileP of files) { ++n; + const fileNum = n; const file = await fileP; - const emitProgress = (elapsedTimeMs?: number) => + const emitProgress = (elapsedTimeMs?: number, processed?: boolean, numErrors?: number) => cfg.progress({ type: 'ProgressFileComplete', - fileNum: n, + fileNum, fileCount, filename: file.filename, elapsedTimeMs, + processed, + numErrors, }); if (!file.text) { emitProgress(); @@ -123,7 +126,7 @@ export function runLint(cfg: CSpellApplicationConfiguration): Promise const p = processFile(file, configInfo); const { elapsedTimeMs } = await measurePromise(p); const result = await p; - emitProgress(elapsedTimeMs); + emitProgress(elapsedTimeMs, result.processed, result.issues.length); // Show the spelling errors after emitting the progress. result.issues.filter(cfg.uniqueFilter).forEach((issue) => cfg.logIssue(issue)); const r = await p; @@ -179,14 +182,16 @@ export function runLint(cfg: CSpellApplicationConfiguration): Promise const cliGlobs: Glob[] = cfg.files; const allGlobs: Glob[] = cliGlobs.length ? cliGlobs : configInfo.config.files || []; const combinedGlobs = normalizeGlobsToRoot(allGlobs, cfg.root, false); + const cliExcludeGlobs = extractPatterns(cfg.excludes).map((p) => p.glob); + const normalizedExcludes = normalizeGlobsToRoot(cliExcludeGlobs, cfg.root, true); const includeGlobs = combinedGlobs.filter((g) => !g.startsWith('!')); - const excludeGlobs = combinedGlobs.filter((g) => g.startsWith('!')); + const excludeGlobs = combinedGlobs.filter((g) => g.startsWith('!')).concat(normalizedExcludes); const fileGlobs: string[] = includeGlobs; if (!fileGlobs.length) { // Nothing to do. return runResult(); } - header(fileGlobs); + header(fileGlobs, excludeGlobs); cfg.info(`Config Files Found:\n ${configInfo.source}\n`, MessageTypes.Info); @@ -198,13 +203,13 @@ export function runLint(cfg: CSpellApplicationConfiguration): Promise const globsToExclude = (configInfo.config.ignorePaths || []).concat(excludeGlobs); const globMatcher = buildGlobMatcher(globsToExclude, root, true); const ignoreGlobs = extractGlobsFromMatcher(globMatcher); - const globOptions = { root, cwd: root, ignore: ignoreGlobs }; + const globOptions = { root, cwd: root, ignore: ignoreGlobs.concat(normalizedExcludes) }; const files = filterFiles(await findFiles(fileGlobs, globOptions), globMatcher); return processFiles(fileLoader(files), configInfo, files.length); } - function header(files: string[]) { + function header(files: string[], cliExcludes: string[]) { const formattedFiles = files.length > 100 ? files.slice(0, 100).concat(['...']) : files; cfg.info( @@ -214,9 +219,7 @@ Date: ${new Date().toUTCString()} Options: verbose: ${yesNo(!!cfg.options.verbose)} config: ${cfg.configFile || 'default'} - exclude: ${extractPatterns(cfg.excludes) - .map((a) => a.glob.glob) - .join('\n ')} + exclude: ${cliExcludes.join('\n ')} files: ${formattedFiles} wordsOnly: ${yesNo(!!cfg.options.wordsOnly)} unique: ${yesNo(!!cfg.options.unique)}