From d5ddae93cb156800bfa50529ab6f622161fc4430 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Wed, 7 Oct 2026 10:56:27 +0200 Subject: [PATCH 1/2] Apply baseline from operator-templating --- .pre-commit-config.yaml | 10 ++++++++++ typos.toml | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 typos.toml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 239c27d2..a8c1dddc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,6 +3,16 @@ default_language_version: node: system repos: + - repo: https://github.com/crate-ci/typos + rev: 00f422f3b19c57bc6338715ebfe3316d38768461 # v1.50.3 + hooks: + - id: typos + # Drop the upstream default `--write-changes` so the hook only + # reports failures instead of writing changes. + # Keep `--force-exclude` so the excludes in typos.toml still + # apply to the paths prek passes in. + args: ['--force-exclude'] + - repo: https://github.com/pre-commit/pre-commit-hooks rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # 6.0.0 hooks: diff --git a/typos.toml b/typos.toml new file mode 100644 index 00000000..0d623494 --- /dev/null +++ b/typos.toml @@ -0,0 +1,41 @@ +# Configuration for typos (https://github.com/crate-ci/typos), run via the prek +# hook in .pre-commit-config.yaml. + +[files] +# Bare `typos` skips hidden dirs by default, but prek passes explicit paths and +# so does check them. Turn it off so both agree. +ignore-hidden = false + +extend-exclude = [ + # Ignore `.git`, which the above `ignore-hidden = false` would otherwise pull in. + ".git/", + # German translations. typos only knows English. + "messages/de.json", +] + +[default] +# typos has no native suppression directive +# (https://github.com/crate-ci/typos/issues/316), so these regexes provide one. +# A marker must sit in a comment: after `#`, `//` or `;` (free text may follow), +# or inside a closed ``, `/* */` or `{# #}` (free text may precede the +# closer). An unterminated `typos:ignore-block-start` suppresses nothing. +# +# Use one of the following when the word is correct at one place but would still be a typo elsewhere: +# +# # typos:ignore-line at the end of the line it applies to +# # typos:ignore-next-line on its own line, above the offending line +# # typos:ignore-block-start / typos:ignore-block-end around a block +extend-ignore-re = [ + '(?Rm)^.*?(?:(?:^|[^{])(?:#|//|;)[ \t]*typos:ignore-line\b.*|(?:|/\*[ \t]*typos:ignore-line\b.*?\*/|\{#[ \t]*typos:ignore-line\b.*?#\})[ \t]*)$', + '(?Rm)^[ \t]*(?:(?:#|//|;)[ \t]*typos:ignore-next-line\b.*|(?:|/\*[ \t]*typos:ignore-next-line\b.*?\*/|\{#[ \t]*typos:ignore-next-line\b.*?#\})[ \t]*)\r?\n.*$', + '(?ms)(?:(?:^|[^{])(?:#|//|;)[ \t]*typos:ignore-block-start\b||/\*[ \t]*typos:ignore-block-start\b[^\n]*?\*/|\{#[ \t]*typos:ignore-block-start\b[^\n]*?#\}).*?(?:(?:^|[^{])(?:#|//|;)[ \t]*typos:ignore-block-end\b||/\*[ \t]*typos:ignore-block-end\b[^\n]*?\*/|\{#[ \t]*typos:ignore-block-end\b[^\n]*?#\})', +] + +# Before adding an entry in here, consider an in-place marker instead. +# Every entry below gets a one-line comment saying what the word is. +[default.extend-words] +# Azure Kubernetes Service +aks = "aks" +# Accepted variant of "unparsable". Used in the `isUnparseable` field of the SQL +# completion grammar analysis (src/lib/editor/completion/grammar-analysis.ts). +unparseable = "unparseable" From f67d78f451163710df07d21e2d4ed5127a0c0d20 Mon Sep 17 00:00:00 2001 From: Maxi Wittich Date: Wed, 7 Oct 2026 10:58:14 +0200 Subject: [PATCH 2/2] Applying typo corrections --- docker/Dockerfile | 2 +- eslint.config.js | 2 +- src/lib/editor/completion/completion.test.ts | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index bb7700bf..0588c3df 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -162,7 +162,7 @@ RUN chown -R ${STACKABLE_USER_UID}:0 /stackable && \ USER ${STACKABLE_USER_UID} -# These labels have mostly been superceded by the OpenContainer spec annotations below but it doesn't hurt to include them +# These labels have mostly been superseded by the OpenContainer spec annotations below but it doesn't hurt to include them # http://label-schema.org/rc1/ LABEL maintainer="info@stackable.tech" LABEL vendor="Stackable GmbH" diff --git a/eslint.config.js b/eslint.config.js index 1893c1d0..10b01428 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -29,7 +29,7 @@ export default defineConfig( // It will currently also error on external links or links with query parameters // https://github.com/sveltejs/eslint-plugin-svelte/issues/1353 'svelte/no-navigation-without-resolve': 'warn', - // Too common occurance in this project, disabling for now + // Too common occurrence in this project, disabling for now 'security/detect-object-injection': 'off' } }, diff --git a/src/lib/editor/completion/completion.test.ts b/src/lib/editor/completion/completion.test.ts index 2e4f888b..81c18c0a 100644 --- a/src/lib/editor/completion/completion.test.ts +++ b/src/lib/editor/completion/completion.test.ts @@ -29,9 +29,9 @@ describe('analyseCompletion — cursor context', () => { }); it('reads a partial word at the cursor', () => { - const analysis = analyseCompletion(at('SELECT * FROM fo|o')); + const analysis = analyseCompletion(at('SELECT * FROM fo|o')); // typos:ignore-line expect(analysis.prefixParts).toEqual([]); - expect(analysis.wordAtCursor).toBe('fo'); + expect(analysis.wordAtCursor).toBe('fo'); // typos:ignore-line }); it('reads a dotted prefix with a partial word at the cursor', () => { @@ -53,10 +53,10 @@ describe('analyseCompletion — cursor context', () => { }); it('surfaces the statement the cursor is in for multi-statement input', () => { - const analysis = analyseCompletion(at('SELECT 1; SELECT * FROM fo|o')); + const analysis = analyseCompletion(at('SELECT 1; SELECT * FROM fo|o')); // typos:ignore-line expect(analysis.statement).not.toBeNull(); expect(analysis.statement?.sql.startsWith('SELECT *')).toBe(true); - expect(analysis.wordAtCursor).toBe('fo'); + expect(analysis.wordAtCursor).toBe('fo'); // typos:ignore-line }); }); @@ -67,7 +67,7 @@ describe('analyseCompletion — grammar classification', () => { }); it('classifies a mid-identifier FROM target as a relation slot', () => { - const analysis = analyseCompletion(at('SELECT * FROM fo|')); + const analysis = analyseCompletion(at('SELECT * FROM fo|')); // typos:ignore-line expect(analysis.identifierKind).toBe('relation'); });