Skip to content

fix: highlight parameter types in function signatures#2

Merged
vabatta merged 1 commit intomainfrom
fix/type-highlight-function-signatures
Apr 4, 2026
Merged

fix: highlight parameter types in function signatures#2
vabatta merged 1 commit intomainfrom
fix/type-highlight-function-signatures

Conversation

@vabatta
Copy link
Copy Markdown
Collaborator

@vabatta vabatta commented Apr 4, 2026

Summary

  • Adds paren_group_typed — a variant of paren_group that includes #storage_types — and wires it into comment_on and general_statement
  • Types like TEXT, INTERVAL, INT are now highlighted inside parentheses in COMMENT ON FUNCTION, GRANT, REVOKE, ALTER FUNCTION, DROP FUNCTION, etc.
  • Scoping to parentheses prevents false positives on bare type keywords used as SQL keywords elsewhere (e.g. TEXT in CREATE TEXT SEARCH CONFIGURATION)

Test plan

  • All 464 existing tests pass (npm test)
  • tests/comment-on-dollar-quote.test.sql — new assertions verify types highlighted in COMMENT ON FUNCTION f(TEXT, INTERVAL, INT) signature, and that IS '...' / IS $$...$$ content remains unhighlighted
  • tests/grant-function-signature.test.sql — new file covering GRANT, REVOKE, ALTER FUNCTION, DROP FUNCTION with type signatures

… GRANT, ALTER, DROP

Adds paren_group_typed — a variant of paren_group that includes storage_types —
and wires it into comment_on and general_statement. Types such as TEXT, INTERVAL,
and INT are now highlighted inside parentheses in statements like:

  COMMENT ON FUNCTION f(TEXT, INT) IS '...';
  GRANT EXECUTE ON FUNCTION f(TEXT, INT) TO role;
  ALTER FUNCTION f(TEXT, INT) OWNER TO role;
  DROP FUNCTION f(TEXT, INT);

Using a paren-scoped pattern avoids false positives on bare type keywords that
appear as SQL keywords elsewhere (e.g. TEXT in CREATE TEXT SEARCH CONFIGURATION).
@vabatta vabatta merged commit 942367f into main Apr 4, 2026
1 check passed
@vabatta vabatta deleted the fix/type-highlight-function-signatures branch April 4, 2026 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant