From 4eb0193774ddb6d2055829bf747c505b2cd40060 Mon Sep 17 00:00:00 2001 From: Rene Saarsoo Date: Sat, 25 Jan 2025 17:47:33 +0200 Subject: [PATCH] Support # and $ in PL/SQL named parameters Fixes #822 --- src/languages/plsql/plsql.formatter.ts | 1 - test/plsql.test.ts | 12 +++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/languages/plsql/plsql.formatter.ts b/src/languages/plsql/plsql.formatter.ts index b9622caa5b..d4503f08c2 100644 --- a/src/languages/plsql/plsql.formatter.ts +++ b/src/languages/plsql/plsql.formatter.ts @@ -107,7 +107,6 @@ export const plsql: DialectOptions = { identChars: { rest: '$#' }, variableTypes: [{ regex: '&{1,2}[A-Za-z][A-Za-z0-9_$#]*' }], paramTypes: { numbered: [':'], named: [':'] }, - paramChars: {}, // Empty object used on purpose to not allow $ and # chars as specified in identChars operators: [ '**', ':=', diff --git a/test/plsql.test.ts b/test/plsql.test.ts index ba76750753..82ae67dff1 100644 --- a/test/plsql.test.ts +++ b/test/plsql.test.ts @@ -84,11 +84,13 @@ describe('PlSqlFormatter', () => { `); }); - // Parameters don't allow the same characters as identifiers - it('does not support #, $ in named parameters', () => { - expect(() => format('SELECT :col$foo')).toThrowError(`Parse error: Unexpected "$foo"`); - - expect(() => format('SELECT :col#foo')).toThrowError(`Parse error: Unexpected "#foo"`); + // Issue #822 + it('supports #, $ in named parameters', () => { + expect(format('SELECT :col$foo, :col#foo')).toBe(dedent` + SELECT + :col$foo, + :col#foo + `); }); it('supports &name substitution variables', () => {