Skip to content

Comments

Update syntax highlighting with all keywords from pytrilogy lark grammar#28

Merged
greenmtnboy merged 2 commits intomainfrom
claude/update-syntax-highlighting-lA7jO
Jan 29, 2026
Merged

Update syntax highlighting with all keywords from pytrilogy lark grammar#28
greenmtnboy merged 2 commits intomainfrom
claude/update-syntax-highlighting-lA7jO

Conversation

@greenmtnboy
Copy link
Contributor

Updated the VS Code extension's syntax highlighting to cover all grammatical
keywords from the pytrilogy lark grammar file. Changes include:

  • Added all statement keywords: select, from, where, having, order, limit, etc.
  • Added multi-select keywords: merge, align, derive, rowset, with
  • Added persist/copy keywords: persist, append, overwrite, into, copy, csv, json, parquet
  • Added datasource keywords: datasource, grain, address, query, file, freshness, etc.
  • Added chart keywords: chart, line, bar, barh, point, area, headline, donut, etc.
  • Added CASE/WHEN conditional keywords
  • Added concept types: key, metric, property, parameter, param, const, constant, unique
  • Added all data types: string, number, numeric, int, bigint, date, datetime, timestamp, float, bool, any, struct, list, array, map, tuple
  • Added categorized builtin functions: math, string, array, map, aggregate, date, window
  • Added operators: <-, ->, ::, between, like, ilike
  • Added lambda transform syntax: @Identifier
  • Added hash types: md5, sha1, sha256, sha512
  • Added date parts: DAY, WEEK, MONTH, QUARTER, YEAR, MINUTE, HOUR, SECOND, DAY_OF_WEEK
  • Added support for // comments in addition to # comments
  • Updated literals to use true, false, null (case-insensitive)
  • Made all keyword matching case-insensitive to match lark grammar

https://claude.ai/code/session_01KJrcKzNukbgAV2RGQtWZxX

Updated the VS Code extension's syntax highlighting to cover all grammatical
keywords from the pytrilogy lark grammar file. Changes include:

- Added all statement keywords: select, from, where, having, order, limit, etc.
- Added multi-select keywords: merge, align, derive, rowset, with
- Added persist/copy keywords: persist, append, overwrite, into, copy, csv, json, parquet
- Added datasource keywords: datasource, grain, address, query, file, freshness, etc.
- Added chart keywords: chart, line, bar, barh, point, area, headline, donut, etc.
- Added CASE/WHEN conditional keywords
- Added concept types: key, metric, property, parameter, param, const, constant, unique
- Added all data types: string, number, numeric, int, bigint, date, datetime, timestamp, float, bool, any, struct, list, array, map, tuple
- Added categorized builtin functions: math, string, array, map, aggregate, date, window
- Added operators: <-, ->, ::, between, like, ilike
- Added lambda transform syntax: @Identifier
- Added hash types: md5, sha1, sha256, sha512
- Added date parts: DAY, WEEK, MONTH, QUARTER, YEAR, MINUTE, HOUR, SECOND, DAY_OF_WEEK
- Added support for // comments in addition to # comments
- Updated literals to use true, false, null (case-insensitive)
- Made all keyword matching case-insensitive to match lark grammar

https://claude.ai/code/session_01KJrcKzNukbgAV2RGQtWZxX
- Bump extension version from 0.1.26 to 0.1.27
- Add grammar tests for keywords, concepts, functions, types, operators, literals, comments
- Fix sqrt being incorrectly included in chart keywords (it's a math function)
- Fix || being incorrectly marked as invalid operator (it's string concatenation)
- Add import keyword to statement-keyword patterns

Test coverage includes:
- Query keywords (select, from, where, having, order, limit, by)
- Multi-select keywords (merge, align, derive, rowset, with)
- Persist/copy keywords (persist, append, overwrite, into, copy, csv, json, parquet)
- Datasource keywords (datasource, grain, address, query, file, etc.)
- Chart keywords (chart, line, bar, point, area, etc.)
- CASE/WHEN conditionals
- Concept types (key, metric, property, parameter, const, unique)
- Data types (string, number, int, bigint, float, struct, list, array, map)
- Functions (math, string, array, map, aggregate, date, window, constants)
- Operators (logical, assignment, arithmetic, comparison)
- Literals (true/false/null, lambda transforms, hash types, date parts, numbers, strings)
- Comments (# and //)

https://claude.ai/code/session_01KJrcKzNukbgAV2RGQtWZxX
@greenmtnboy greenmtnboy merged commit 609564e into main Jan 29, 2026
3 checks passed
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.

2 participants