/vsc_redshift_extension

A Visual Studio Code Extension to support working in a Redshift (AWS) SQL Environment

Syntax Highlighter for Redshift

Simply put there is no Syntax Highlighting for Redshift AWS SQL in Visual Studio code. So I made my own. It aint flashy, it never will be.

Features

Syntax Highlighting for:

  • SQL Commands like Select, Abort, Begin...
  • SQL Keywords like Date_trunc, Distkey, lower...
  • Single line comments
  • Double line comments
  • Single quote strings
  • Double quote strings
  • SQL Data types like BIGINT, BOOL, VARCHAR
  • SQL Constants such as AND, BETWEEN, ILIKE
  • Support for number highlighting
  • Special Characters like =, <> , =!

Technical Information

Syntax highlighting is done by corresponding to textmate elements.

Keywords

Patterns matched to keyword.control:

ABORT, ALTER, ANALYZE, BEGIN, CALL, CANCEL, CLOSE, COMMENT, COMMIT, COPY, CREATE, DEALLOCATE, DECLARE, DELETE, DROP, END, EXECUTE, EXPLAIN, FETCH, GRANT, INSERT, LOCK, PREPARE, RESET, REVOKE, ROLLBACK, SELECT, SET, SHOW, START, TRUNCATE, UNLOAD, UPDATE, VACUUM

Patterns matched to keyword.other:

ABS, ACOS, ADD_MONTHS, APPROXIMATE, PERCENTILE_DISC, ASIN, ATAN, ATAN2, AVG, BIT_AND, BIT_OR, BIT-WISE, BOOL_AND, BOOL_OR, BPCHARCMP, BTRIM, BTTEXT_PATTERN_CMP, CASE, CAST, CBRT, CEIL, CEILING, CHAR_LENGHT, CHARACTER_LENGTH, CHARINDEX, CHECKSUM, CHR, COALESCE, CONCAT, CONVERT, CONVERT_TIMEZONE, COS, COT, COUNT, CRC32, CUME_DIST, CURRENT_DATABASE, CURRENT_DATE, CURRENT_SCHEMA, CURRENT_SCHEMAS, CURRENT_SETTING, CURRENT_USER, CURRENT_USER_ID, DATE_CMP, DATE_CMP_TIMESTAMP, DATE_CMP_TIMESTAMPZ, DATE_PART, DATE_PART_YEAR, DATE_TRUNC, DATEADD, DATEDIFF, DECODE, DEGREES, DENSE_RANK, DEXP, DISTKEY, DISTINCT, DLOG1, DLOG10, EXP, EXTRACT, FIRST_VALUE, FLOOR, FUNC_SHA1, GETDATE, GREATEST, HAS_DATABASE_PRIVILEGE, HAS_SCHEMA_PRIVILEGE, HAS_TABLE_PRIVILEGE, INITCAP, INTERVAL_CMP, IS_VALID_JSON, IS_VALID_JSON_ARRAYT, JSON_ARRAY_LENGHT, JSON_EXTRACT_ARRAY_ELEMENT_TEXT, JSON_EXTRACT_PATH_TEXT, LAG, LAST_DAY, LAST_VALUUE, LEAD, LEAST, LEFT, LEN, LENGTH, LISTAGG, LN, LOG, LOWER, LPAD, LTRIM, MAX, MD5, MEDIAN, MIN, MOD, MONTHS_BETWEEN, NEXT_DAY, NTH_VALUE, NTILE, NULLIF, NVL, NVL2, OCTET_LENGHT, PERCENT_RANK, PERCENTILE_CONT, PERCENTILE_DISC, PG_BACKEND_PID, PG_CANCEL_BACKEND, PG_GET_COLS, PG_GET_LATE_BINDING_VIEW_COLS, PG_LAST_COPY_COUNT, PG_LAST_COPY_ID, PG_LAST_QUERY_ID, PG_LAST_UNLOAD_COUNT, PG_LAST_UNLOAD_ID, PG_TERMINATE_BACKEND, PI, POSISTION, POWER, QUOTE_IDENT, QUOTE_LITERAL, RADIANS, RANDOM, RANK, RATIO_TO_REPORT, REGEXP_COUNT, REGEXP_INSTR, REGEXP_REPLACE, REGEXP_SUBSTR, REPEAT, REPLACE, REPLICATE, REVERSE, RIGHT, ROUND, ROW_NUMBER, RPAD, RTRIM, SESSION_USER, SET_CONFIG, SIGN, SIN, SLICE_NUM, SORTKEY, SPLIT_PART, SQRT, STDDEV, STDDEV_POP, STDDEV_SAMP, STRPOS, STRTOL, SUBSTRING, SUM, SYSDATE, TAN, TEXTLEN, TIMEOFDAY, TIMESTAMP_CMP, TIMESTAMP_CMP_DATE, TIMESTAMP_CMP_TIMESTAMPZ, TIMESTAMPZ_CMP, TIMESTAMPZ_CMP_DATE, TIMESTAMPZ_CMP_TIMESTAMP, TIMEZONE, TO_CHAR, TO_DATE, TO_HEX, TO_NUMBER, TO_TIMESTAMP, TRANSLATE, TRIM, TRUNC, UPPER, USER, VAR_POP, VAR_SAMP, VARIANCE, VERSION

Comments

Pattern matched to comment.line.double-dash:

lines starting with '--' Pattern matched to comment.block: Blocks starting with '/' and ending with '/'

Strings

Pattern matched to string.quoted.single:

Comments encapsulated by ' & ' Pattern matched to string.quoted.double: Comments encapsulated by " & "

Variables

Patterns matched to variable.language:

BIGINT, BOOL, BOOLEAN, BPCHAR, CHAR, CHARACTER, DATE, DECIMAL, DOUBLE, IN8, INT, INT2, INT4, INTEGER, NCHAR, NUMERIC, NVARCHAR, PRECISION, REAL, SMALLINT, TEXT, TIMESTAMP, TIMESTAMPTZ, VARCHAR, VARYING

Constants

Pattern matched to constant.character: <,>,=,!

Pattern matched to constant.language:

ALL, AND, ANY, APPEND, AS, AUTHORIZATION, BETWEEN, BY, CHARACTERISTICS, COMPRESSION, DATABASE, DEFAULT, ELSE, END, EXISTS, EXTERNAL, FALSE, FROM, FUNCTION, GROUP, ILIKE, IF, IN, INTO, IS, JOIN, LIBRARY, LIKE, LIMIT, NOT, ON, OR, ORDER, OVER, PARTITION, PRIVILEGES, PROCEDURE, SCHEMA, SESSION, SIMILAR, SOME, SYSDATE, TABLE, THEN, TO, TRANSACTION, TRUE, UNKNOWN, USER, VIEW, WHEN, WHERE, WITH

Pattern matched to constant.numeric:

Numbers 0-9