sqlsurge is a Visual Studio Code extension for SQL language server using sqls. It works just NOT ONLY with SQL files, but also with RAW SQL QUERIES on other languages such as TypeScript and Rust.
Prisma Example in TypeScript:
SQLx Example in Rust:
See: https://github.com/sqls-server/sqls?tab=readme-ov-file#support-rdbms
This table shows the features available for each file extension.
Features | .sql |
.ts |
.rs |
---|---|---|---|
Completion | ✅ | ✅ | ✅ |
Formatting | ✅ | ✅ | ✅ |
Quick Info Symbol on Completion | ✅ | ✅ | ✅ |
Quick Info Symbol on Hover | ✅ | ❌ | ❌ |
Any Raw SQL Queries Support | ー | ✅ | ✅ |
These are the completion items sqlsurge provides:
sqls config
)About raw SQL queries, VSCode's quick suggestion(auto completion) in strings is disabled by default. It can be enabled by adding the following setting to settings.json.
"editor.quickSuggestions": {
"strings": true
}
VSCode Commands
Format Document
sqlsurge: Format SQL
Configurations for raw SQL queries
sqlsurge.formatOnSave
: Format SQL on save. Default is true
.sqlsurge.formatSql.indent
: Format SQL with indent. Default is false
.sqlsurge.formatSql.tabSize
: Tab size for SQL formatting. Default is 4
.As a formatter, sqlsurge use sqls
for Vanilla SQL files, use SQL Formatter for raw SQL.
Quick info symbol for tables and columns can be shown by triggering completion with Ctrl
+ Space
or Cmd
+ Space
.
[!NOTE] This feature is experimental. Feedback is welcome!
sqlsurge supports Prisma in TypeScript and SQLx in Rust by default. But you can use sqlsurge with any raw SQL queries, such as TypeORM
or user-defined functions by setting.
This is an example of settings for custom raw SQL queries.
// TypeORM in TypeScript
const someQuery = await entityManager.query(
"SELECT * FROM todos WHERE id = $1;",
[1]
);
"sqlsurge.customRawSqlQuery": {
"language": "typescript",
"configs": [
{
"functionName": "query",
"sqlArgNo": 1,
"isTemplateLiteral": false
}
]
}