Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>osavNew to Visual Studio Code? Get it now.
osav

osav

Maximilian Seipel

|
10 installs
| (0) | Free
osav
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Setup

  1. Go to File -> Preferences -> Settings ->
  2. Enable 'Editor: Format On Save'
  3. Profit


How to use

CTRL-S
Format and save

CTRL-ALT-S
Generate Spec


Features CTRL-S

1. SQL Formatting

Base: sql-formatter (https://github.com/vertical-blank/sql-formatter)

{
    language: 'bigquery',
    keywordCase: 'upper',
    linesBetweenQueries: 2
}

2. Replaces

Umlaute
ä, Ä, ü, Ü, ö, Ö, ß -> ae, Ae, ue, Ue, oe, Oe, ss
Keywords to Uppercase (that sql-formatter library missed) 
const manualKeywords = [
    'min\\(', 'max\\(', 'cast\\(', 'row_number\\(', 'rank\\(', 'abs\\(', 'sum\\(', 'avg\\(', 'round\\(',
    'date', 'datetime', 'timestamp', 'int', 'int64', 'numeric', 'string', 'bool',
    'ifnull', 'if', 'elseif', 'while', 'coalesce', 'safe_cast\\(', 'array_length\\(', 'left\\(', 'right\\(',
    'length\\(', 'substring\\(', 'concat\\(', 'lower\\(', 'upper\\(', 'trim\\(', 'ltrim\\(', 'rtrim\\('
];

3. Remove Linebreaks / Empty Lines

(* = 1 or more linebreaks/empty lines)
- DECLARE...;*DECLARE...; -> DECLARE...;\nDECLARE...;
- STRUCT< e1, *e2, *e3> -> STRUCT< e1, e2, e3>
- IF * AND/OR -> IF AND/OR
- END * WHILE; -> END WHILE;
- SET * ...; -> SET...;

3. Add Linebreaks / Empty Lines

- WHILE DO -> WHILE\nDO
- BEGIN IF -> BEGIN\nIF
- Above a comment

4. Add Intent

- BEGIN ... END;
- WHILE DO ... END WHILE;
- IF...ENDIF;

4. OSAV Specific

Step Aliases
- add comment that indicates the step's number(-- [STEP ALIAS 2/10])


Features CTRL-ALT-S

1. Quality Checks

General
- string variables(table_name, resource_identifier, ...) not empty
- unique_row_id either TRUE/FALSE
- [Warning] sharepoint not emtpy


Sources
- name contains only lowercase letters, numbers and underscore
- name does not end with underscore
- data group filter is valid ("Only Newest", "Only Newest by Date", ...)


Columns
- name contains only lowercase letters, numbers and underscore
- data type is valid ("INT64", "STRING", ...)
- description not empty


Combination of Sources
- name contains only lowercase letters, numbers and underscore
- name does not end with underscore
- last step alias is called 'final'

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft